芯片 :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;
}
}
|