低功耗模式
MSP430单片机共有5种低功耗模式,LPM0,LPM1,LPM2,LPM3,LPM4。
其配置方式如下:
控制位 | 工作模式 | CPU及时钟的状态 |
---|---|---|
SCG1=0 SCG0=0 OSCOFF=0 CPUOFF=0 | 活动模式(AM) | CPU,MCLK,SMCLK,ACLK活动 |
SCG1=0 SCG0=0 OSCOFF=0 CPUOFF=1 | 低功耗模式0 (LPM0) | CPU,MCLK禁止;SMCLK,ACLK活动 |
SCG1=0 SCG0=1 OSCOFF=0 CPUOFF=1 | 低功耗模式1(LPM1) | CPU,MCLK,DCO禁止;SMCLK,ACLK活动。若DCO用作SMCLK或MCLK,则直流发生器活动,否则禁止。 |
SCG1=1 SCG0=0 OSCOFF=0 CPUOFF=1 | 低功耗模式2(LPM2) | CPU,MCLK,SMCLK,DCO禁止;ACLK活动。直流发生器活动 |
SCG1=1 SCG0=1 OSCOFF=0 CPUOFF=1 | 低功耗模式3(LPM3) | CPU,MCLK,SMCLK,DCO,直流发生器禁止;ACLK活动 |
SCG1=1 SCG0=1 OSCOFF=1 CPUOFF=1 | 低功耗模式4(LPM4) | CPU及所有时钟禁止 |
工作原理
MSP430的各个模块完全独立。定时器,IO,AD,看门狗等都可以在主CPU休眠的状态下独立运行。软件将CPU设定到某一低功耗工作模式下,在需要时使用中断将CPU从休眠状态中唤醒,完成工作后又进入相应的休眠状态。
进入低功耗模式:
//进入LPM3低功耗模式,并开启全局中断
_BIS_SR(LPM3_bits + GIE);
或
LPM3; //进入LPM3低功耗模式
_EINT(); //开启全局中断
退出低功耗模式:
//退出低功耗模式
_BIC_SR_IRQ(LPM3_bits);
或
//退出低功耗模式
LPM3_EXIT;