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:
请问,这是什么问题??大家帮帮忙了。。。