|
本人用F412做仪表,设置一个按键P16来关机,关机后进入LPM4,同时设定IO口中断,结果发现进入休眠以后P1IE莫名其妙地被清零,硬件仿真的时候读出来的P1IE为0,从而导致不能再次开机,修改内存把它改为0x40(BIT6)后才能进入中断唤醒,再次进入休眠后又成老样子了,郁闷!
换了一台机器还是不行,原以为是个别芯片的问题,现在换了一个,还是老毛病
部分程序如下,各路英雄有空的请帮我看看,谢谢!
#define KEY1 BIT6
void main(void)
{
...
for(;;)
{
if((P1IN & KEY1)==0)
{
WDTCTL=WDTPW+WDTHOLD; //Stop WDT
P1IES= KEY1; //fall edge ××aila××e
P1IE = KEY1; //ena××e IO interrupt
LPM4;
}
}
...
}
interrupt [PORT1_VECTOR] void P1_ISP( void )
{
main_delay();
if((P1IN & KEY1) == 0)
{
P1IE = 0; //disa××e IO interrupt
LPM4_EXIT;
}
P1IFG = 0;
}
|
|