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.

[参考译文] AM2732:如何获得系统时间?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1434581/am2732-how-do-i-obtain-the-system-time

器件型号:AM2732

工具与软件:

我的代码如下:

实际运行的打印内容如下:

实测时间和实际时间的偏差比较大、是因为我得到时间的方式不对、还是我的芯片在使用较长的晶振、除了问题所在?

我希望您能给我一些建议、谢谢。

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

    我认为 ClockP 依赖于 RTI ISR 和正确的中断优先级。 尝试使用 CycleCounterP.h 中的函数来生成您自己的延迟。 这些不需要 ISR。

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

    谢谢、但我只找到了函数的声明、我是否必须自己定义它、我是否有具体的使用说明?

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

    定义已经编译到 drivers.am263x.r5f.ti-arm-clang.debug.lib 中、该定义应该已包含在您的项目中。 例如、如果打开 ti_drivers_config.c、则可以看到 已被调用的 CycleCounterP_init (SOC_getSelfCpuClk ());。

    只需包含 CycleCounterP.h 并 在您的代码中调用函数、就可以很好地进行编译和链接。

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

    Hi Current、

    正如 Kler 所提到的,你应该使用 CycleCounterP_getCount32 ()函数来计算 CPU 的周期数:

    我得到的是:

    鉴于 CPU 以400MHz 的频率运行、因此1ms 的实际测量时间为2556*400 = 1,022,400ns。 它相当接近。

    此致、

    Ming

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

    谢谢 Kier, 我使用了 CycleCounterP_getCount32 ()接口,但它仍然看起来不正确。

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

    您可能遇到格式问题。 最好使用调试器来检查 Stime 和 etime 的实际值。

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

    Hi Current、

    您是否可以使用%d 而不是%ld?

    此致、

    Ming

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

    感谢 Kier、 此问题现已解决。