430进入LMP4 ,通过外部的RTC来唤醒,偶尔会出现无法唤醒, 如果再次出发mcu 可以正常唤醒并运行,可以确定RTC是有输出信号来唤醒MCU的,貌似mcu没有响应边沿中断, (边沿设置、中断使能 什么的都没有问题) 时钟芯片内部的震荡时钟 16MHZ, 进入睡眠: 唤醒中断 LPM4_EXIT; 以上是大概的代码,我有一个疑问,在进入睡眠前SetVCore(PMMCOREV_0);是否有问题? 因为我的时钟是16mhz的, |
HG:
其实没有必要加SetVcore,因为LPM3 CPU都不工作了,这个电压阈会自动帮你关掉。
在中断里也不建议delay那么久
另外,在LPM4_EXIT之前要重新配置GPIO的状态,以便下次再进中断,比如
P1IE &= ~BIT7; // Disable interrupt on PA.7 = P1.7 P2IE |= BIT2; // Enable interrupt on P2.2LPM4_EXIT; // Stay in active mode after ISR
当然了,具体应该根据你自己的应用来。
liang yan1:
回复 HG:
非常感谢你的回复和建议,另外芯片的手册中提到了进入LPM4.5之后 I/O的config会丢失,我代码没有进入LPM4.5, 也可能存在i/o config丢失吗
Delta:
请问你现在跑在哪个型号的MCU上?
进LPM4.5 相当于RAM数据不完全保存,所以CONFIG也会丢失。
请看这个页面: http://www.ti.com/tool/TIDM-FRAM-CTPL
有描述LPM X.5带来的影响和解决方法。
liang yan1:
回复 Delta:
MSP430F67461
灰小子:
回复 liang yan1:
LPM4不会丢失RAM内容的
LPMx.5才会丢失
liang yan1:
回复 灰小子:
你说的对的,我的没有进入lpm4.5.这个问题我还在找原因, 谢谢关注!