您好!
我需要像"millis()"这样的函数来获取自启动电路板以来的时间(以 ms 为单位)。
请就此为我提供帮助吗?
此致、
Titus S.
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.
您好!
我需要像"millis()"这样的函数来获取自启动电路板以来的时间(以 ms 为单位)。
请就此为我提供帮助吗?
此致、
Titus S.
否、没有毫秒函数来测量启动时间。
此类测量存在一些问题、有以下不同阶段:
1)硬件从上电或释放复位按钮到内部电路启动的时间、内部时钟信号稳定;这是几毫秒、并在用户手册中发布。
2)软件时间:ResetISR 例程准备一个 C 语言环境、以使程序运行。 主要 RAM 用零填充、并创建初始化的数据段、并将初始化的数据从闪存复制到 RAM。 此外、还会创建一些其他段。
3)另一个软件时间:主函数启动、并且您将时钟配置为与 PLL 配合使用;在 PLL 启动并稳定之前、所有软件目前都从 PIOSC 运行;之后、在退出时钟设置例程时、您运行所需的频率。 您可以考虑从设置时钟频率的开始到退出的启动时间。
从测量角度来看:
您需要配置一个定时器并在 ResetISR 例程开始时启动它-然后手动计数直到定时器启动所花费的时间、这是不方便的。
另一种更好的解决方案是使用片上调试寄存器、在 ResetISR 开始时启动它、并在时钟设置退出时读取它的值。 这比使用专用定时器更容易实现-调试寄存器只计算时钟周期的数量。 如果您搜索关键字"执行时间"、可在此站点上找到调试寄存器的使用示例。
您不会指定您的工具- CCS 或其他工具-某些其他工具可能具有仿真器、在这种情况下、在 PLL 设置例程之前很有用、因为仿真器不知道硬件。 AFAIK CCS 不再有这样的仿真器。