This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430G2553 端口P1.1,测频率问题!



G2553   P1.1/TA0.0/UCA0RXD/UCA0SOMI/A1/CA1

用Lanuch pad + G2553  P1.1端口做频率输入口,用TimerA来定时测频率。。

 

#include <msp430.h>

unsigned long int new_cap = 0,Over_cap = 0;

int main(void) {     WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer

    if(CALBC1_8MHZ == 0xFF ||CALDCO_8MHZ == 0xFF)     {      while(1);     }     BCSCTL1 = CALBC1_8MHZ;     DCOCTL = CALDCO_8MHZ;

    P1DIR &= ~BIT1;     P1SEL |= BIT1;

    TACTL |= TASSEL_2 + MC_2 + TACLR + TAIE;

    CCTL0 = CM_1 + SCS + CAP + CCIE + CCIS_0;

    __bis_SR_register(LPM0_bits + GIE);     __no_operation();

    return 0; }

#pragma vector = TIMER0_A0_VECTOR __interrupt void TIMER0_A0_ISR (void) {  switch(__even_in_range(TAIV,0x0E))  {  case TA0IV_NONE:   break;  case TA0IV_TACCR1:   new_cap = TAR;   break;  case TA0IV_TAIFG:   Over_cap ++;   break;  } }

现在测试发现 TAIV 的值是:0 or 10,无法进入case TA0IV_TACCR1:

请问,这是什么问题??大家帮帮忙了。。。