int count = 0; //记录进入中断次数
void main()
{
WDTCTL = WDTPW + WDTHOLD;
P1IFG &= ~BIT5; //清除P1IFG
P1IE |= BIT5; //打开中断允许
P1IES |= BIT5; //选择下降沿触发
P4DIR |= BIT0; //P4。0输出
P4OUT |= BIT0; //P4.0灯点亮
_EINT();
while(1);
}
#pragma vector = PORT1_VECTOR
__interrupt void P1_5_ISR(void)
{
if( ( P1IFG & BIT5) == BIT5 ) //中断响应
{
P1IFG &= ~BIT5; //清除中断标志
count++;
if(count== 1) //第一次按下按键,进入低功耗
{
LPM3;
P4OUT &= ~BIT0; //流水灯关闭
}
else if(count== 2) //第二次按下按键,退出低功耗
{
LPM3_EXIT;
count = 0;
P4OUT |= BIT0; //流水灯打开
}
}
} |