玩转MSP-ESP430G2(基础篇)
(四)ESP430G2 低功耗模式
MSP430除了active模式外,还有低功耗模式(Low-power mode)即LPM0、LPM1、LPM2、LPM3、LPM4,由状态寄存器中的CPUOFF、OSCOFF、SCG0、SCG1比特位设置。
官方手册中的六种低功耗模式对应的时钟状态如下:
The following six operating modes can be configured by software:
Active mode (AM)
- All clocks are active
Low-power mode 0(LPM0) - CPU is disabled
- ACLK and SMCLK remain active,
- MCLK is disabled
Low-power mode 1(LPM1) - CPU is disabled
- ACLK and SMCLK remain active
- MCLK is disabled
- DCO’s dc generator is disabled if DCO not used in active mode
Low-power mode 2 (LPM2) - CPU is disabled
- MCLK and SMCLK are disabled
- DCO’s dc generator remains enabled
- ACLK remains active
Low-power mode 3(LPM3) - CPU is disabled
- MCLK and SMCLK are disabled
- DCO’s dc generator is disabled
- ACLK remains active
Low-power mode 4(LPM4) - CPU is disabled
- ACLK is disabled
- MCLK and SMCLK are disabled
- DCO’s dc generator is disabled
- Crystal oscillator is stopped
当VCC为3.0V时 LPM4消耗最低 因为此时关闭所有内部时钟信号,此时只能用外部中断唤醒
官方头文件所给出的实现语句:
#define LPM0 __bis_SR_register(LPM0_bits) /* Enter Low Power Mode 0 */
#define LPM0_EXIT __bic_SR_register_on_exit(LPM0_bits) /* Exit Low Power Mode 0 */
#define LPM1 __bis_SR_register(LPM1_bits) /* Enter Low Power Mode 1 */
#define LPM1_EXIT __bic_SR_register_on_exit(LPM1_bits) /* Exit Low Power Mode 1 */
#define LPM2 __bis_SR_register(LPM2_bits) /* Enter Low Power Mode 2 */
#define LPM2_EXIT __bic_SR_register_on_exit(LPM2_bits) /* Exit Low Power Mode 2 */
#define LPM3 __bis_SR_register(LPM3_bits) /* Enter Low Power Mode 3 */
#define LPM3_EXIT __bic_SR_register_on_exit(LPM3_bits) /* Exit Low Power Mode 3 */
#define LPM4 __bis_SR_register(LPM4_bits) /* Enter Low Power Mode 4 */
#define LPM4_EXIT __bic_SR_register_on_exit(LPM4_bits) /* Exit Low Power Mode 4 */
将以上语句移植至Energia