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.

[参考译文] CCS/TMS570LC4357:计数器值

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/610032/ccs-tms570lc4357-value-of-counter

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

工具/软件:Code Composer Studio

您好!

频率= 500;

void blink (void){
静态无符号整型时间;
时间= rtiGetPeriod (rtiREG1、rtiCOMPARE0);
if (time%freq=0){
gioSetBit (gioPORTB、6、gioGetBit (gioPORTB、6)^0x01);
}
} 

在 HalcogGen 中、我已将比较值设置为1000ms。 如何获取计数器的当前值?

非常感谢

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

    RTI 中有两个计数器:自由运行计数器(RTIFRCx)和递增计数器(RTIUCx)。 计数器的值可以通过读取相应的计数器寄存器或者生成一个硬件事件来确定、此硬件事件将计数器的值捕捉到相应的捕捉寄存器(RTICAUCx、和 RTICAFRCx)中。 X 表示0或1。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    a = rtiREG1->CNT[计数器].FRCx;

    b = rtiREG1->CNT[计数器].ucx;

    如果您将比较值设置为2ms、则每2ms 会获得一次 RTI 中断、频率为500。 您无需手动比较时间和频率:

    时间= rtiGetPeriod (rtiREG1、rtiCOMPARE0);

      if (time%freq=0){...