主题中讨论的其他器件:MSP-FET
大家好!
对于一个低功耗应用、我使用 RTC_A 作为中断源来唤醒 MCU;ACLK=XT1=32768Hz。
初始代码如下(MCLK = DCO = 12MHz -足够快):
MOV #RT0PSHOLD、&RTCPS0CTL
MOV #RT1PSHOLD、和 RTCPS1CTL //两个预分频器都处于保持状态-希望内部分频器应该被复位(顺便说一下、没有关于这个主题的描述)
MOV #RT0PSDIV_7、&RTCPS0CTL // CLK-SOURCE=ACLK、IRQ 未被启用。
MOV #RT1SSEL_2+RT1IP_7+RT1PSIE、&RTCPS1CTL
NOP
BIS #GIE+CPUOFF+SCG0+SCG1、SR //将 MCU 置于 LPM3中并等待中断
要点是、当我置位 RTCPS1CTL 时、IFG 也会立即置位。 这不仅发生在调试模式(IAR Workbench 和最新的 MSP-FET 调试器)中、而且也发生在运行时。 当然、在这种情况下、LPM3模式是无用的、并且永远无法实现正确的时序。
唯一的替代方法是在将 MCU 置于 LPM3之前手动复位 IFG、例如"BIC #RT1PSIFG、&RTCPS1CTL"。 令人疯狂的是、在另一个代码位置、预先设置的 IFG 不会出现问题。
那么、IFG-flag 有什么问题? 还很重要:当将预分频器设置为保持时、其分频器是否也会复位?