进入低功耗的方法:
#include "msp430x42x.h"
void main( void )
{
WDTCTL=WDTPW+WDTHOLD; //停止看门狗
FLL_CTL0|=XCAP18PF; //配置晶振负载电容
P1DIR |= BIT0+BIT1+BIT2+BIT3+BIT4;
P2DIR |= BIT0+BIT1+BIT2+BIT3; //悬空不用的IO口要置为输出
P1OUT = 0; //否则不确定电平会造成IO耗电
P2OUT = 0;
BTCTL = BT_fCLK2_DIV256;//BasicTimer设为1/128秒中断
IE2 |= BTIE; // 允许BasicTimer中断
_EINT(); // 允许总中断
LPM3; // 进入低功耗模式3,等待被唤醒
//程序永远不会执行到这里
}
#pragma vector = BASICTIMER_VECTOR
__interrupt void BT_ISR(void) // 1/128秒一次中断(由BasicTimer所产生)
{
if((P1IN & BIT5)==0) P2OUT |= BIT0;
else P2OUT &=~BIT0;
}
|