芯片 :F169
用途:使用TA2做外设捕获电平跳变信号
问题:进不去中断,信号用示波器看过没问题就是进不去中断,我用定时器B复用为捕获模式完全能行,A就废了
代码
//P64是LED灯
#include "msp430x14x.h"
unsigned int n;//计录次数
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //看门狗设置
unsigned int iq0;
BCSCTL1&=~XT2OFF;
do
{
IFG1&=~OFIFG;
for(iq0=0xff;iq0>0;iq0--);
}
while((IFG1&OFIFG)!=0);
BCSCTL2=0x88;
TACTL = TASSEL_2+MC_2;//SMCLK,连续计数,中断允许,计数器清零
TACCTL2 = CAP+CM_1+SCS+CCIS_0+CCIE;//捕获模式,上升沿捕获,CCI1A输入,同步捕
// P1DIR &=~ BIT2;//P1.2输入
// P1SEL |=BIT2; //P1.2第二功能,捕获输入
/* P2DIR &= ~BIT4;
P2SEL |= BIT4;
*/
P1DIR &= ~BIT7;
P1SEL |= BIT7;
P6DIR|=BIT4;
_EINT();//开全局中断
P6OUT |= BIT4;
P6OUT &= ~BIT4;
_EINT();
while(1)
{
}
}
#pragma vector=TIMERA1_VECTOR //捕获中断向量
__interrupt void Timer_A(void)
{
switch(TAIV) //2为捕获向量地址
{
case 0: n++;break;
case 2: n++;break;
case 4: n++;break;
case 10: n++;break;
}
}
|