#include <msp430x14x.h>
#include "BoardConfig.h"
// P1 中斷服務(wù)子程序
#pragma vector = PORT1_VECTOR
__interrupt void P1_IRQ(void)
{
P1IFG = 0; // 清除中斷標(biāo)志
__low_power_mode_off_on_exit(); // 退出低功耗模式
P3OUT ^= 0x10;
}
void DelayMs(unsigned int ms)
{
unsigned char i;
while(--ms)
{
for(i=110;i>0;--i);
}
}
void main(void)
{
P1DIR &=0;
P1DIR |= 0xF0;
P1OUT|= 0x0F;
P3DIR |= 0x30;
P3OUT |= 0xff;
BoardConfig(0xbF);
WDTCTL = WDTPW + WDTHOLD;
P1DIR &= ~BIT0; // P1.0輸入
P1IE |= BIT0; // P1.0開中斷
P1IES |= BIT0; // P1.0下降沿中斷
_EINT();
while(1)
{
P3OUT &= ~0x20;
DelayMs(5000);
_NOP(); // 空語句
P3OUT |= 0x20;
__low_power_mode_4(); // 進(jìn)入LPM0模式,LPM4
//P3OUT |= 0x20;
// 當(dāng)程序執(zhí)行到上述語句后, 程序會停止到該語句, 并進(jìn)入低功耗狀態(tài)
// 當(dāng)P1.0出現(xiàn)下降沿的時候, 在P1的中斷服務(wù)子程序退出低功耗模式
// 則會再次運行_NOP();語句, 然后在進(jìn)入底功耗
}
}