#include 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; } }