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.

[参考译文] SW-EK-TM4C123GXL:TivaWare_C_Series-2.1.4.178中是否存在任何 Millis ()函数

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/584229/sw-ek-tm4c123gxl-is-there-any-millis-function-in-tivaware_c_series-2-1-4-178

器件型号:SW-EK-TM4C123GXL

您好!

我需要像"millis()"这样的函数来获取自启动电路板以来的时间(以 ms 为单位)。

请就此为我提供帮助吗?

此致、

Titus S.

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

    否、没有毫秒函数来测量启动时间。

    此类测量存在一些问题、有以下不同阶段:

    1)硬件从上电或释放复位按钮到内部电路启动的时间、内部时钟信号稳定;这是几毫秒、并在用户手册中发布。

    2)软件时间:ResetISR 例程准备一个 C 语言环境、以使程序运行。 主要 RAM 用零填充、并创建初始化的数据段、并将初始化的数据从闪存复制到 RAM。 此外、还会创建一些其他段。

    3)另一个软件时间:主函数启动、并且您将时钟配置为与 PLL 配合使用;在 PLL 启动并稳定之前、所有软件目前都从 PIOSC 运行;之后、在退出时钟设置例程时、您运行所需的频率。 您可以考虑从设置时钟频率的开始到退出的启动时间。

    从测量角度来看:

    您需要配置一个定时器并在 ResetISR 例程开始时启动它-然后手动计数直到定时器启动所花费的时间、这是不方便的。

    另一种更好的解决方案是使用片上调试寄存器、在 ResetISR 开始时启动它、并在时钟设置退出时读取它的值。 这比使用专用定时器更容易实现-调试寄存器只计算时钟周期的数量。 如果您搜索关键字"执行时间"、可在此站点上找到调试寄存器的使用示例。

    您不会指定您的工具- CCS 或其他工具-某些其他工具可能具有仿真器、在这种情况下、在 PLL 设置例程之前很有用、因为仿真器不知道硬件。 AFAIK CCS 不再有这样的仿真器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用系统节拍每1ms 生成一次中断。 在中断例程中、使静态无符号长整型值递增。 然后、Millis 函数只需返回静态无符号长整型的当前值。