2019-07-29 16:56发布
Unshining 发表于 2014-11-16 13:46 KeyValue是什么?在哪里改变的?这很重要。 你处理过程中禁止了按键中断,但是处理完后你重新开启了按键中 ...
李冬发 发表于 2014-11-15 21:42 你的KeyValue从哪来的?
_cir_ 发表于 2014-11-16 14:59 在主程序中根据标志位调用的,一旦有按键中断立马根据确定KeyValue退出低功耗模三执行按键程序。 #pragma ...
Unshining 发表于 2014-11-17 00:07 1、在INT_KEY()中,关了P2高四位中断后,你是不是忘了再把它打开? 2、建议KeyValue = P2IFG & 0xf0; 3、 ...
最多设置5个标签!
在主程序中根据标志位调用的,一旦有按键中断立马根据确定KeyValue退出低功耗模三执行按键程序。
#pragma vector=PORT2_VECTOR
__interrupt void PORT_2(void)
{
INT_Flag = 2;
KeyValue = P2IFG;//读取中断标志,确定按键值,KeyValue是总程序定义的全局变量
P2IFG &= 0x0f; //清楚中断标志
LPM3_EXIT;
}
主程序部分程序
while(1){
_BIS_SR(LPM3_bits+GIE);
switch(INT_Flag){
case 2: INT_KEY();
break;
}
总程序里面定义的全局变量。
1、在INT_KEY()中,关了P2高四位中断后,你是不是忘了再把它打开?
2、建议KeyValue = P2IFG & 0xf0;
3、如果还不行,请进行调试,例如直接将KeyValue的值显示在LCD上并观察现象。
厉害,我就是这样解决的!不知道为什么P2IFG中P2.2误触发置高了。我的P2.2口用来烧程序了,BSL方式的。但是我的程序在执行时这个引脚相当于悬空的,希望大神还能指导指导。谢谢!!!
一周热门 更多>