尊敬的 TI 专家,
现在、我要测试 MSP430F5342。
ISR 和 LPM3之间的同步有一些问题。
假设我们的程序中有一个 ISR、无法预测该 ISR 的触发时间。
现在、当我们想进入 LPM3时、如果这个 ISR 将在很短的时间内触发、那么这个时间太短了、以至于在进入 LPM3之前触发。
,我们错过了这个触发器、这个触发器是我们系统的唤醒源、这样我们的系统就进入了无限睡眠状态。
根据 ARM 内核 MCU,的经验、我已经考虑了这个问题的解决方案、如下所示,
//禁用 INT __BIC_SR_register (GIE); //输入 LPM3 LPM3; //启用 INT __bis_SR_register (GIE); //然后执行我们要执行的操作... (笑声)
但是、我怀疑 MSP430是否可以在重新启用 INT 之前使 IRQ 保持挂起、以及是否立即将系统从睡眠状态唤醒以 执行 INT_ENABLE。
如果挂起的 IRQ 无法在 INT_DISABLE 状态下唤醒系统。将永远不 会执行 INT_ENABLE 语句。系统 将进入无限睡眠状态。
总之,我有两个问题。
1)。。在进入 LPM3之前、如何避免 IRQ 触发?
2) ?是否可以使用我在上面提到的解决方案?如果错误,是否有任何类似的解决方案要采用
提前感谢您的帮助。
此致
Andy