#include #include uint8_t ui8_LOW=0; uint16_t ui16_high=50000; void main(void){ WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer //SMLK 1MHZ BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; P1DIR |= 0x0E; // P5.1 output TACCTL0 = CCIE; // TBCCR0 interrupt enabled TACCR0 = 10000; // TACTL = TASSEL_2+MC_2; // SMCLK, continuous mode __bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/interrupt while(1); } interrupt(TIMERA0_VECTOR) Timer_A0 (void) { if(ui8_LOW==1) { P1OUT^=0x02; TACCR0+=ui16_high; ui8_LOW=0; }else{ P1OUT^=0x02; TACCR0+=65535-ui16_high; ui8_LOW=1; } }