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.

[参考译文] RM46L852:RTI 计数器

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1177961/rm46l852-rti-counter

器件型号:RM46L852

您好!

我需要设置 RTI 0计数器、以便 tne Freescale FRC 每毫秒递增一次、并且我可以从程序启动以来以毫秒为单位获得时间。

我正在使用以下代码,但 FRCx 只会增加很多秒,为什么?

MAIN ()


/*用户代码开始(3)*/


rtiInit();

rtiStartCounter (rtiCOUNTER_BLOCK0);


while (1)
{   

   printf ("FRCx:%d CPUx:%d\n"、(int) rtiREG1->CNT[rtiCOUNTER_BLOCK0].FRCx、(int) rtiREG1->CNT[rtiCOUNTER_BLOCK0].CPUx);

/*用户代码结束*/

返回0;

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

    尊敬的 Armin:

    配置中没有错误、对于上述配置、FRC 寄存器将仅每1ms 递增一次。

    您没有提到测量方法、我想这是您测量过程中的错误。 在 while 循环中、您将持续向右打印 FRC 寄存器值(在 FRC 寄存器递增后不打印)、因此相同的值可能会多次打印、这并不意味着它会在秒内递增。

    我刚才对您的配置做了小实验  

    在上面的代码中、您可以看到、当 FRC 值发生变化时、我将切换一个 GIO、并对该 GIO 引脚进行 I SCOPE

    查看结果、它仅每1ms 递增一次。

    我随附了我的代码供您参考、请仔细阅读。

    e2e.ti.com/.../RTI_5F00_1msec_5F00_TEST.zip

    --

    谢谢、此致、
    Jagadish。

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

    您好 Jagadish、

    我用我的手表进行了测量、正如您在屏幕截图中看到的、只有在某些 printf 之后、FRC 才会递增。

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

    尊敬的 Armin:

    [引用 userid="539898" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1177961/rm46l852-rti-counter/4434711 #4434711"]FRC 仅在某些 printf 之后递增。

    是的、它将在某些 printf 之后递增、因为您在 while (1)中连续打印 FRC 寄存器值、甚至不验证其增量。 很显然、while (1)循环执行时间将远远小于1msec、因此它将在每次循环执行时打印 FRC 寄存器值。

    这不是计算增量时间的正确方法。 正如我告诉过的、请为此使用 GPIO。

    或者、在像我共享给您的代码那样进行更改之后、至少尝试打印 FRC 寄存器值、在这种情况下、每1ms 就会打印一次、每1s 就会得到1000个值。

    --

    谢谢、此致、
    Jagadish。

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

    您好  Jagadish、

    是的,你是对的,我不知道 USB 通信有一些缓冲区,我假设 printf 正在阻断,需要几毫秒的时间,... 使用 tne GPIO、我得到的结果相同。

    谢谢、此致

    Armin