最近有个项目,需要使用到MSP430F2132.需要用到捕获功能,MSP430F2132中的TA0中的捕获引脚有3个,分别对应CCR0(P1.1),CCR1(P1.2),CCR3(P1.3),目前P1.1和P1.2我做其他用途,现在用P1.3引脚做捕获,发现第一次能进入捕获中断,之后就不能进中断了,这到底是怎么回事?请大家指教指教!!
附上相关代码:
gpio设置:
void GPIO_Init(void)
{
P1DIR &= (~BIT3);
P1SEL |= (BIT3);
P1SEL2 |= (BIT3);
}
捕获功能设置:
void T0A3_cap_Init(void)
{
TA0CTL |= TASSEL_2 +ID_0 + MC_2;
TA0CCTL2 |= CM_2; // 下降沿捕获
TA0CCTL2 |= CCIS_0; // CCI2A做捕获输入
TA0CCTL2 |= SCS; // 同步方式
TA0CCTL2 |= CAP; // 捕获方式,
TA0CCTL2 |= CCIE;
}
中断函数:
#pragma vector=TIMER0_A1_VECTOR
__interrupt void TIMER0_A3_CAP_ISR(void)
{
switch(__even_in_range(TAIV,10))
{
case 2: // P1.2捕获
break;
case 4: // P1.3捕获
Period1tmp = TA0CCR2;
Period1new = Period1tmp - Period1old;
Period1old = Period1tmp;
break;
case 10:
break;
}
}
注:我将P1.2做捕获测试了一下,是可以进入捕获程序的,为什么P1.3不行?

