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.

[参考译文] MSP432E401Y:针对亚秒模式的 RTC 中断生成

Guru**** 2522770 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1298025/msp432e401y-rtc-interrupt-generation-for-subsecond-mode

器件型号:MSP432E401Y

我遵循 以下链接中 API 指南中列出的样片。


software-dl.ti.com/.../group__hibernate__api.html

下面列出的示例就是我所关注的内容。

"以下示例说明了如何使用 TM4C123x 器件的休眠模块 RTC 来在特定的时间产生中断"

我需要持续运行中断、因此将这两行添加到了中断处理程序中。

休眠处理程序()
{
uint32_t ui32Status;
//
//获取中断状态并清除任何挂起的中断。
//
ui32Status = 休眠状态(1);
休眠 IntClear(ui32Status);
//
//处理 RTC 匹配0中断。
//
if (ui32Status 和 HIBERNY_INT_RTC_MATCH_0)
{
//
//此处显示 RTC 匹配0中断操作。
      HIBERNATERTCSSMATCHSet ( 0, HIBERNATERTCSMATCHGet (0)+3277)    ;//32768/10持续100毫秒
      休眠 RTCMatchSet (0、休眠 RTCGet ()+ 0);
//

如果我只是上述操作的一部分、如下所示、每次发送它都会生成一个中断。

//此处显示 RTC 匹配0中断操作。
      休眠 RTCMatchSet (0、休眠 RTCGet ()+ 1);
我无法使 RTC 生成亚秒级中断。 感谢任何帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我解决了这个问题、现在我可以每100ms 生成一个中断。 中断处理程序如下。
    void 休眠处理程序(void)
    {
       uint32_t ui32Status;
       //
       //获取中断状态并清除任何挂起的中断。
       //
       ui32Status =休眠状态(1);
       休眠 IntClear (ui32Status);
       //
       //处理 RTC 匹配0中断。
       //
       if (ui32Status 和 HIBERNY_INT_RTC_MATCH_0)
       {
           //此处显示 RTC 匹配0中断操作。
          HIBERNATERTCSSMATCHSet ( 0327  68/10 )    ; //32768/10持续100毫秒
             HibernateRTCSet (        0);//HibernateRTCSet (0); //清除初始值
       }



    我不知道有没有更好的方法来做到这一点、但它似乎有效。