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.

[参考译文] TMS320F28379D:两个中断之间经历的时间

Guru**** 2553450 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1285800/tms320f28379d-time-elapsed-between-two-interrupts-gpio

器件型号:TMS320F28379D

您好!
我需要测量两个中断之间经历的时间、 我正在使用 CPUTimers、但我需要处理五个 GPIO 中断、但似乎只有3个 CPUTIMER。 是否有衡量所有这些指标的建议?
谢谢!

比亚吉奥

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

    您好,Biagio,

    您可以做的是使用相同的 CPU 计时器、但只测量增量并为每个计时器具有单独的全局变量。 如果您知道将按照什么顺序触发哪些中断、您可以为计时器计数提供一个变量、并为来自最后一个中断的差值提供另一个变量、然后为每组 ISR 提供这个变量。 每个 ISR 的计时器计数变量可用于计算增量。

    此致、

    阿米尔·奥马尔

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

    您好、Omer:
    感谢您的回复。 是的、这就是我想做的事情、但我必须在 X 秒达到 uint32_t 的最大允许值后进行计时器复位、我错了吗?

    此致、
    比亚吉奥

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但我必须在 X 秒后处理计时器重置问题,达到 uint32_t 的最大允许值后,我错了吗?

    是的、如果您只是让它持续运行、这是正确的。 但是、如果您希望所有5个中断之间的时间间隔在该时间内(2^32个时钟周期 x 系统时钟速度)、 而且您知道 中断的触发顺序、您可以在定时器达到序列中的最后一个中断后(或者您认为定时器应该被复位的时刻)复位定时器。

    如果情况并非如此、您可以使用一个条件来检查增量是否为负、在这种情况下、 通过溢出计算增量。

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

    您好、Omer:
    中断是独立的、当所有连接的功能被停用时、我可以重置计时器、但可能需要进入自由运行模式。 因此、我必须检查负增量并确保两个中断之间经历的时间绝不会超过2^32时钟周期、否则该解决方案将不再有效。  

    谢谢!
    此致、

    比亚吉奥