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.

[参考译文] MSP430FR2676:关于 CapTIvate 的主周期

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1041167/msp430fr2676-regarding-the-main-cycle-of-captivate

器件型号:MSP430FR2676

各位专家、您好!

关于 CapTIvate 的主周期、当 I2C 未通信时、似乎正在"ui16ActiveModeScanPeriod"周期内进行处理。
但是、当 I2C 通信开始时、该周期会有所不同。

对于通信、选择"__CAPT_REGISTERI2C_interface__"。 此外、通过切换 P1.1端口的高/低电平来确认主周期。

我想知道这样做的原因。

我正在使用的程序是:

main.c

void main (void)

  WDTCTL = WDTPW | WDTHOLD;
  bsp_configureMCU();
   _bis_SR_register (GIE);
   CAPT_AppStart();

   while (1)
   {
      CAPT_appHandler();
      __no_operation();
      CAPT_appSleep ();
      P1OUT ^= BIT1;
   }
}  

此致、
Sasaki

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

    Sasaki-San、您好!

    原因是在 while (1)循环中,代码将 CPU 置于 CAPT_appSleep ()中的低功耗模式; 如果没有 I2C 通信,则唤醒 CPU 的唯一中断是 CapTIvate 计时器(典型值为33msec)。  CapTIvate 中使用的 I2C 驱动程序是中断驱动的、因此发送或接收中断可能会导致 CPU 在 CapTIvate 计时器间隔之间唤醒。  这就是您看到 P1OUT.1切换的原因。

    这是否有助于回答您的问题?

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

    您好、Dennis -San、

    感谢您提供信息。 我明白了。 I2C ISR 包含“__BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);”。

    "_bis_SR_register_ON_EXIT (LPM3_bits);"是在一个定时器周期内运行主循环所必需的。

    此致、
    Sasaki