您好!
我´m 使用 TMS750LS1224 Hercules Launchpad、我想知道是否有可以使用的类似 HAL_Dalay (ms)的函数?
如果存在、在使用 FreeRTOS 时可以这样做?
谢谢!
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.
您好!
我´m 使用 TMS750LS1224 Hercules Launchpad、我想知道是否有可以使用的类似 HAL_Dalay (ms)的函数?
如果存在、在使用 FreeRTOS 时可以这样做?
谢谢!
您好 Anderson、
可通过两种方式生成 delay 函数:
一种方法是使用 __delay_cycles 函数、另一种方法是使用 RTI 外设。
1. __delay_cycles 是 我们的代码生成工具中的一个内在函数。
使用此内在函数时存在一些限制、如编译器自述文件中所述。
========================================
_delay_cycles 内在函数会插入代码、以精确地使用
指定的周期、无副作用。 延迟的周期数量必须为
编译时常量。
注意:周期时序数据基于0个等待状态。 结果将随以下条件而变化
其他等待状态。 该实现方案不考虑动态
预测。 考虑到流水线级别、较低的延迟周期计数可能不太准确、
刷新行为。
========================================
实际上、我使用220Mhz CPU 时钟(GCLK)测试了该函数、参数为10000个周期、我通过了
实际上、根据上述值、预期的延迟应为(10000/220Mhz) 45.45uS (对)、但我得到的延迟为160us。 这是因为闪存的等待周期、正如您可以看到下面的 pic 当时钟是220Mhz 时、闪存的等待状态不为零
数据为3、地址为1。
当我将输入操作数值从10000更改为1000时、我得到的是16us。 因此、我建议使用此函数、只计算具有一些高值的实际延迟、然后将其缩小到所需值。
有关更多详细信息、请参阅以下主题:
(+) RM48HDK 延迟功能? -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
2.另一种方法是使用 RTI 函数:
对于此方法、请参阅以下主题:
(+) RM44L920:延时时间-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
--
谢谢。此致、
Jagadish。