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.

[参考译文] RM57L843:RTI 定时器周期偏移问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1040451/rm57l843-rti-timer-period-offset-issue

器件型号:RM57L843
主题中讨论的其他器件:HALCOGEN

RTI 模块在 HALCOGEN 中配置如下:

3个时序中断由计数器0生成:1ms (compare0)、4ms (compare1)和10ms (compare2)。 计数器1、比较3周期最大值(0xFFFFFFFF)也用于监视上述1ms 和4ms 定时器中断的周期。 通过读取 Compare3的节拍、函数为 rtiGetCurrentTick (compare3)、计算该返回值的两个中断之间的差值以获得周期、并记录上述周期的最大值和最小值。

问题:

10ms 任务执行更多(函数执行更多)、1ms 和4ms 时序周期偏移更大、并且10ms 内没有中断关闭和重新启用。

客户想知道原因是什么。

谢谢!

此致、

樱桃周

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

    您好、Cherry、

    您是不是说客户获得更多比较2中断、以及来自 compare1和比较0的中断更少? 客户可以声明3个全局变量(例如 cnt0、cnt1和 cnt2)来对比较0/1/2中的中断数进行计数。

    void rtiNotification (rtibase_t * rtiREG、uint32通知)

       /*在用户代码开始和用户代码结束之间输入用户代码。 *
       /*用户代码开始(12)*/

       if (notification == rtiCOMPARE0)

         cnt0++;

       if (notification == rtiCOMPARE1)

         cnt1++;

       if (notification == rtiCOMPARE2)

         cnt2++;

       /*用户代码结束*/

    我不知道客户方法是如何工作的。