This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/EK-TM4C1294XL:如何每1秒监控一次输入信号

Guru**** 2468460 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/669775/compiler-ek-tm4c1294xl-how-to-monitor-input-signal-for-every-1-sec

器件型号:EK-TM4C1294XL

工具/软件:TI C/C++编译器

大家好、

目前正在使用 tm4c1294xl 评估套件、目前正在进行项目的是、如果我需要执行必要的操作、我需要每秒监控一次输入信号。

我在  稍后启动计时器之前尝试了指令 i32Val = GPIOPinRead (GPIO_Porte _BASE、GPIO_PIN_2)、我检查了 if ( i32Val = GPIOPinRead (GPIO_Porte _BASE、GPIO_PIN_2)所做的更改

通过将计时器设置为每1秒一次但它不起作用,有关此问题的任何指南都可以

此致、

Prudhvi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    简单:您每秒对信号进行一次采样。 故事结束。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您是否将 GPIO 端口 E 配置为输入并启用端口 E? 您是如何初始化 GPIO 的?

    另一个问题是您的输入来自哪里? 它在一秒内切换了很多吗? 如果它切换了很多、那么每1秒读取一次输入是不可靠的。 您可能会发现引脚每秒处于相同状态、即使输入已切换多次。 如果您正在寻找输入转换、则需要使用 GPIO 输入端的中断。 每当检测到指定的边沿(即上升边沿或下降边沿)时、就会生成中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    ***类似***

    查尔斯做得很好-比回答更敏锐、 "轻松-每秒阅读一次 PIN!"     (该方法唯一"容易"的是、(几乎)确保"失明" -发生超过几赫兹的转换!   虽然被宣布为"故事结束"-这可能会产生"恐怖故事"。)

    当然-您的"任何信号边沿转换时的中断"是目前为止的正常/习惯(和首选)方法!    并创造一个大大改进的"故事结束"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    OP 的问题可能与以下方面有关:

    GPIO 端口/引脚的配置
    用于对输入进行时间采样的计时器外设的配置
    输入采样频率过低
    如果在中断上下文中对输入进行采样并且在主上下文中处理结果、则代码中也可能存在同步问题。

    然而,如果不了解"但它不起作用"的更多细节,我们就很难提供帮助----我们需要更详细地了解到底有什么不起作用。 发布执行初始化、采样的代码、以及显示如何将其整理到正在执行处理的任何代码、也会很有帮助。

    关于在一秒(或任何其他)周期内进行多边沿转换的可能性:如果此输入来自按钮或其他受接触反弹影响的器件等内容、则对于每次接触关闭/打开、您可能会获得多个转换。 这会产生这样的效果:例如、如果您使用瞬时按钮来实现"开/关"开关的行为(按一次可打开某些器件、再次按可再次将其关闭)、则它将无法正常工作。 您的软件应更频繁地对输入进行采样、并实施去抖算法以抑制不必要的转换。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常精细- 12_squared。   确实与(小写启发)"轻松-故事结束!"冲突   您(如此)注意到、故事有子故事-很少(很少-如果有) 深刻思考 的"不起作用!"所揭示

    多年来、这里有人争辩说、"海报指南"将强制演示"关键详情"、正如您所注意到的。   供应商声称、在这个(未用成果)论坛上、"太困难"和"不起作用"正如预期的那样、无回声地无回声。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="CB1_MOBILE"]

    非常精细- 12_squared。   确实与(小写启发)"轻松-故事结束!"冲突   您(如此)注意到、故事有子故事-很少(很少-如果有) 深刻思考 的"不起作用!"所揭示

    [/报价]

    故事总是有副故事。 为了在论坛上取得最佳成果,必须尽可能具体。 准备好一个好的论坛帖子确实需要一定数量的"家庭作业"- 我不止一次发现、当我准备这篇文章并收集其所需的详细信息时、我会自行解决问题(或至少是问题的原因)。

    [引用 USER="CB1_MOBILE"]

    多年来、这里有人争辩说、"海报指南"将强制演示"关键详情"、正如您所注意到的。   供应商声称、在这个(未用成果)论坛上、"太困难"和"不起作用"正如预期的那样、无回声地无回声。

    [/报价]
    为论坛撰写问题的表单网页应包含一个简短的检查清单、其中列出了建议海报在其信息中详述的内容。 这样、当您撰写文章时、您可以看到通常会作为后续问题提出哪些类型的问题、并提醒您在前面详细介绍这些项目。 它还应包括一个指向论坛指南的链接、该链接对如何撰写好的帖子进行了更完整的描述。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    几次-过去几年-我创建、提议和提出(就在这里)这样的 A、"海报指南宣言"。    (我的"离电网"-逃离/低真空驾驶舱-离 Uni-Bomber 不远...   他更是,“宣言名人堂”。)   注-我没有兄弟...  "让我进入!"

    某些供应商代理表示同意-指导方针是详细和合理的-从未采用。   他们坐着——现在就坐着——坐着——坐着——坐着———坐着———坐着———坐着—————

    可预测的-以"默示批准"为福- "不起作用"以令人心生的规律性获得-浪费宝贵的论坛时间、重点和精力...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    感谢您的回复、我已将 Porte 设置为输入端口、我必须监控每秒生成的心跳信号、如果不生成、我需要在5秒后生成信号


    您能帮我解决这个问题吗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="CB1_MOBILE"]

    几次-过去几年-我创建、提议和提出(就在这里)这样的 A、"海报指南宣言"。    (我的"离电网"-逃离/低真空驾驶舱-离 Uni-Bomber 不远...   他更是,“宣言名人堂”。)   注-我没有兄弟...  "让我进入!"

    某些供应商代理表示同意-指导方针是详细和合理的-从未采用。   他们坐着——现在就坐着——坐着——坐着——坐着———坐着———坐着———坐着—————

    可预测的-以"默示批准"为福- "不起作用"以令人心生的规律性获得-浪费宝贵的论坛时间、重点和精力...

    [/报价]

    很遗憾听到这个消息、但也许您应该将您的论坛指南放在您自己的博客上、并在回复此类"不起作用"帖子时链接到该博客。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Pras p">您好、Charles、

    感谢您的回复、我已将 Porte 设置为输入端口、我必须监控每秒生成的心跳信号、如果不生成、我需要在5秒后生成信号


    您能帮我解决这个问题吗

    [/报价]

    不确定您遇到的具体问题、但如果您是指如何按照 Charles 的建议设置引脚更改中断:

    在初始化代码中尝试类似的操作(注:未测试的代码!):

    GPIOIntClear (GPIO_Porte _BASE、GPIO_INT_PIN_2);
    GPIOPinTypeGPIOInput (GPIO_Porte _BASE、GPIO_PIN_2);
    GPIOIntTypeSet (GPIO_Porte _BASE、GPIO_PIN_2、GPIO_RISE_EDGE);
    GPIOIntEnable (GPIO_Porte _BASE、GPIO_INT_PIN_2);
    IntEnable (INT_GPIOE);

    在 C 启动文件中、将中断处理程序放置在中断矢量表的正确位置。

    在主循环之前的 main 中的某个位置,执行 IntMasterEnable()以确保中断正常工作。

    您的中断将执行类似的操作(同样、未经测试的代码!):

    无效 MyInterruptHandler (空)

    uint32_t 状态= GPIOIntStatus (GPIO_Porte _BASE、TRUE);
    GPIOIntClear (GPIO_Porte _BASE、状态);

    if (Status = GPIO_INT_PIN_2){
    //在这里执行一些操作

    希望我没有忘记关键的一步!

    非常重要的注意事项:如果这是有噪声的输入或进行了不必要的转换(例如来自机械开关、按钮等容易发生接触抖动问题的器件)、或者它只是一个有噪声的信号、 然后、此方法将导致不必要的中断、您将需要另一种方法来处理此心跳信号。 如果这是一个干净的信号、没有不需要的转换、那么中断可以工作、但请注意、与所有中断一样、中断处理程序将异步调用到主代码、并且您需要使用适当的同步方法来避免这些问题。 最简单的操作可能是声明您在中断中设置的全局易失性变量并在主代码中进行检查。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问候语12_squared、

    建议您和我-"覆一枚硬币"-确定谁(首先)会让他们的"心跳"受到监控/测量!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您可以设置 OneShot 5s 计时器。 每次收到心跳中断时、都会启动计时器。 如果每秒接收一次中断、则每次都会重新加载计时器。 如果5秒内没有心搏、则定时器将过期、然后您可以根据定时器超时将信号置为有效。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    或者、您也可以通过另一种方式执行、而无需使用一次性计时器:

    1.输入脉冲的时间戳;
    2.轮询时间。 如果超过 n 秒、请设置标志;
    3.完成。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Charles Tsaaaa">您好、
    您可以设置 OneShot 5s 计时器。 每次收到心跳中断时、都会启动计时器。 如果每秒接收一次中断、则每次都会重新加载计时器。 如果5秒内没有心搏、则定时器将过期、然后您可以根据定时器超时将信号置为有效。

    [/报价]

    这真是个好主意! 简单而优雅。 我最喜欢的是、它需要 CPU 的最小干预。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于公司/我确实为医疗行业生产了"基于 MCU 的产品"、因此需要注意的可能是公平/恰当的、"经过5秒后-不存在(人类)"心跳" 可能表示患者已过期?"   (5秒心搏间隔转换为"12"的脉率 。    

    甚至著名的、条件一流的雪帕导游——接近 喜马拉雅山峰——也不可能生存@ 12 BPM!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="CB1_MOBILE"]

    由于公司/我确实为医疗行业生产了"基于 MCU 的产品"、因此需要注意的可能是公平/恰当的、"经过5秒后-不存在(人类)"心跳" 可能表示患者已过期?"   (5秒心搏间隔转换为"12"的脉率 。    

    甚至著名的、条件一流的雪帕导游——接近 喜马拉雅山峰——也不可能生存@ 12 BPM!

    [/报价]

    从前面的消息中、我不确定 OP 是否正在监控人体心跳或来自某些器件的信号、而 OP 称之为"心跳"。 如果5秒钟后没有此类信号、则表示需要重置器件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果有"任何"机会","心跳"是人类产生的,我必须谨慎行事。

    海报的开场白说明:"我需要每秒监控一次输入信号。"

    根据我的经验、(大多数)所有"MCU 心跳"都源自一些源自 MCU 的自然发生或人为生成的信号。 海报说明"输入信号"-合理地表明它是"外部信号"(以及不确定的信号)-不太可能符合"正常/习惯"  MCU 检测信号...

    从海报问题(相对)的简单性来看、充分"意识到 "MCU"的心跳似乎远未得到证实。    (我的一堆芯片-如本文所述-仍然留在医疗营中。)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 CB1、

     一个人的心搏每秒(棒球场编号)一次、但由于心律不规则(我不知道医学术语)突然停止跳动几秒钟、然后再次恢复正常的心搏吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Charles、    (您今天没想到!   周四和周五、Twas not a "Charles Free"?)   这里有一些-即将运行"讨厌!"   (好的-更难吃。)

    这一医学术语是"心动过缓"(心率缓慢)、这是一种心律失常-但" 5秒缺勤"是极端的!

    现在、"静息心率 为"60"-是高效心脏/循环系统的指示器!   而"配对"——1秒"心搏间隔"——实际上—进一步指出这是一个"基于医学的"张贴。

    还请记住- 5秒间隔是由"帮助者"建议的-而不是海报-对于现有的"事实证据"-我很怀疑没有经验的人 知道"心跳" -是对 MCU 运行状况/功能的描述...   (所有事实都必须接受并权衡-不存在偏见-并且不承认演示者的背景和条件)