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.

[参考译文] RTOS/EK-TM4C1294XL:时间()、以毫秒为单位

Guru**** 2614265 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/776873/rtos-ek-tm4c1294xl-time-with-milliseconds

器件型号:EK-TM4C1294XL

工具/软件:TI-RTOS

您好!
我有 EK-TM4C1294开发板、并使用 TI-RTOS v2.16.1.14。
我通过 UART 接口获取数据,并使用覆盖的 TIME()函数保存当前时间。

time_t t32 =时间(空);
System_printf ("%s"、ctime (&t32));

但我还需要以毫秒为单位的时间。 如何获得以毫秒为单位的时间?

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

    Mark、您好!

     在我看来、这个问题与其说是 TI-RTOS 的 System_printf、不如说是使用 time()和 ctime()的 C 库函数功能。 正如我了解 ctime()和 time()的用法一样,您只能使用秒粒度,而不是毫秒。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、
    我如何实现与时间()函数类似的时间(以毫秒为单位)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mark、您好!
    TI-RTOS 提供了秒模块,该模块提供与 C 库 time()非常相似的功能。 请参阅 SYS/BIOS 用户指南中的第5.4节。 www.ti.com/.../spruex3u.pdf。但是、它不会为您提供毫秒。

    您需要考虑的另一件事是使用内核中的时间戳模块。 对 Timestamp 模块函数的调用被转发到特定于平台的 TimestampProvider 实现。 换言之、它将使用片上硬件计时器模块。 请参阅 SYS/BIOS 用户指南的第5.5节。 或者、您也可以转到 TI-RTOS 培训幻灯片的第7章、了解有关时钟模块和时间戳的更多信息。 training.ti.com/.../TI_RTOS_Kernel_Workshop_Student_Guide_rev4.00.pdf。但是、如果您正在寻找、这个时间戳不会标记当前实时时钟(hh:mm:ss:ms)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mark、您好!

    我没有听到你的反馈。 我假设您了解了独立 C 库和 TI-RTOS 中 time()和 ctime()的计时粒度限制。 您可能需要考虑将 TIME()和时间戳功能组合在一起,如时钟模块中所述。 我现在要关闭这个线程。 如果您有新问题、您可以打开新主题或对此主题提供一些注释。 同样、我也不知道提供低至毫秒的壁式时钟的其他方法、而是上面提供的方法。