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.

[参考译文] RM44L920:延时时间

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1214399/rm44l920-time-delay

器件型号:RM44L920
主题中讨论的其他器件:HALCOGEN

我需要在没有软件延迟的情况下实现时间延迟、例如循环计数。如何实现?

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

    Karthik、您好、

    一种简单的方法是、可以使用 RTI 外设创建延迟。

    示例:

    如果我想使用 RTI 外设在代码中创建5秒的延迟、那么  

    首先、我需要配置所需的延迟、以毫秒(5000)为单位、以兼容 RTI 的0

    2.配置所需的延迟后,只需在 HALCoGen 中启用 RTI 驱动程序即可生成代码。

    3、在代码中、您只需要启动计数器并轮询 rtiNOTIFICATION_COMPARE0标志、直到它被设置。

    设置标志后、您可以停止计数器、并在需要创建延迟增益时再次启动计数器。

    以下是您可以参考的示例工程、它是在 RM57上构建和测试的

    --

    谢谢。此致、
    Jagadish。

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

    我使用了上述代码、但在调试期间、它会卡在 while 循环中。 甚至我的延迟也不到1秒

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

    Karthik、您好、

    我在调试时使用了上述代码,但在 while 循环中它被卡住。 即使我的延迟也小于1秒[/报价]

    因为您配置的时间不到1秒、可能看不到延迟  

    实际上、它将等待以下代码突出显示行中配置的延迟、延迟完成后、它将等待 while (1)。

    如果要创建重复延迟、则可以按如下所示更改代码

    在这种情况下、将在代码的以下行创建重复配置的延迟

    while (!(rtiREG1->INTFLAG & rtiNOTIFICION_COMPARE0));//等待为 compare0配置的延迟

    --

    谢谢。此致、
    Jagadish。

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

    Jagdish、您好!

    我不需要重复的延迟,我需要一个全球延迟仅一次,并告诉你什么是所有的事情做.

    我将一个计数器块用于重复延迟、另一个用于全局延迟(一次)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不需要重复延迟,我需要全局延迟仅一次[/报价]

    在这种情况下、请使用以下代码

    此处将仅在突出显示的行创建一次配置的延迟。

    --

    谢谢。此致、
    Jagadish。