主题中讨论的其他器件:HALCOGEN
我需要在没有软件延迟的情况下实现时间延迟、例如循环计数。如何实现?
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.
Karthik、您好、
一种简单的方法是、可以使用 RTI 外设创建延迟。
示例:
如果我想使用 RTI 外设在代码中创建5秒的延迟、那么
首先、我需要配置所需的延迟、以毫秒(5000)为单位、以兼容 RTI 的0
2.配置所需的延迟后,只需在 HALCoGen 中启用 RTI 驱动程序即可生成代码。
3、在代码中、您只需要启动计数器并轮询 rtiNOTIFICATION_COMPARE0标志、直到它被设置。
设置标志后、您可以停止计数器、并在需要创建延迟增益时再次启动计数器。
以下是您可以参考的示例工程、它是在 RM57上构建和测试的
--
谢谢。此致、
Jagadish。
Karthik、您好、
我在调试时使用了上述代码,但在 while 循环中它被卡住。 即使我的延迟也小于1秒[/报价]因为您配置的时间不到1秒、可能看不到延迟
实际上、它将等待以下代码突出显示行中配置的延迟、延迟完成后、它将等待 while (1)。
如果要创建重复延迟、则可以按如下所示更改代码
在这种情况下、将在代码的以下行创建重复配置的延迟
while (!(rtiREG1->INTFLAG & rtiNOTIFICION_COMPARE0));//等待为 compare0配置的延迟
--
谢谢。此致、
Jagadish。
我不需要重复延迟,我需要全局延迟仅一次[/报价]在这种情况下、请使用以下代码
此处将仅在突出显示的行创建一次配置的延迟。
--
谢谢。此致、
Jagadish。