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.
首先在main吧,我运行了“_BIS_SR(LPM4_bits + GIE); // Enter LPM4”
先外部IO口中断函数中我又运行了“_BIS_SR(LPM3_bits + GIE);”,请问在此之后,程序是继续执行完中断函数后面的内容再进入LPM3,还是从此处直接进入LPM3了?如果是从此处直接进入LPM3了,在下次中断之后会不会再继续执行第一次中断函数后面的语句?
你好!
在中断中写这两句就行了,在出ISR后,MCU退出LPM4,然后进入LPM3。
_bic_SR_register_on_exit(LPM4_bits);
_bis_SR_register(LPM3_bits)
GIE不用打开了,MSP430的ISR在编译时会自动加上进中断时的关中断和出中断时的开中断操作。
Regards,
Hardy
不建议在中断函数中设置低功耗模式,这样刚进了中断函数又进入了低功耗模式中去了,而中断压栈的中断入口还没恢复,容易造成系统混乱。
建议所有的低功耗模式都在MAIN函数的死循环中。如果确实要切换不同的低功耗模式,可以用一些标志来进行判断,这样逻辑才比较清楚。在系统维护和升级中才不容易出问题.