想 采用TA0 定时器 的 TA0CCTL2、TA0CCTL3、TA0CCTL4 捕捉功能,完成 三个按键的输入。出现个问题: 程序运行时一直出现TA0CCTL2 中断,没有任何按键的情况下也一直进入中断函数的TA0CCTL2处理部分, 当把TA0CCTL2 屏蔽后,中断运行正常。
程序语句如下:
//三按键输入引脚功能设置
KM_I; KM_IN_EN; KZ_I; KZ_IN_EN; KS_I; KS_IN_EN;
// 红外接收、三按键读取 中断函数
//#pragma vector = TIMER0_A1_VECTOR
__interrupt void TIMER0_A1_ISR(void)
{
switch(__even_in_range(TA0IV,14))
{
case 0: break; // No interrupt
case 2: // CCR1 not used
break; case 4: KeyDA[KeyDAPal++] = KM_IN_ST;
TA0CCTL2 &= ~CCIFG; TA0CCTL2 &= ~COV; break; // CCR2 not used
case 6: KeyDA[KeyDAPal++] = KZ_IN_ST;
TA0CCTL3 &= ~CCIFG; TA0CCTL3 &= ~COV; break; // reserved
case 8: KeyDA[KeyDAPal++] = KS_IN_ST;
TA0CCTL4 &= ~CCIFG; TA0CCTL4 &= ~COV; break; // reserved
case 10: PulseVal=10;
break; // reserved
case 12: PulseVal=12;
break; // reserved
case 14: PulseVal=14; break;
default: break; }
if(KeyDAPal > 9) KeyDAPal = 9;
TA0IV=0;
}
希望大侠们给点指导,问题出在哪里,期盼指导!
灰小子:
回复 zwx zhang:
能者自答!感谢分享经验