qiushenghua 发表于 2015-12-9 17:05
在进入低功耗模式之前,请先将总中断打开,就是下面这条指令:
_EINT();
对应的关闭总中断是
_DINT();
...
首先非常感谢你的详解,非常直白易懂,基本上知道怎么一回事了。现在对你最后的例句有一个疑问,就是说程序刚进入while(1)就进入了LPM0低功耗模式,此时程序是否不再往下执行,只等待中断来唤醒?另外,在低功耗模式的时候来了一个中断,唤醒了CPU,此时中断程序执行完毕,state已经被赋值,跳出中断的时候程序是如何运行的?是从之前进入低功耗模式语句的后面一条if..............,还是从头开始,又进入了低功耗模式?那么这样的话岂不是没法执行到下面的if条件判断语句?还是需要将低功耗模式开启语句放在while循环的最后面?也就是这样
while(1)
{
if(state==1)do_spmething();
if(state==2)do_spmething_else();
LPM0;
}