void sleep(unsigned int time) { TA0CTL = MC_0; // Stop timer TA0CCTL0 = CCIE; // enable CCR0 interrupt (IF on reaching TA0CCR0) TA0EX0 = 7; // Set divider to 8 -> 32000 / 8 = 4000 1/s = 1/4 ms TA0CTL |= TASSEL_1 | TACLR | MC_1; // select ACLK, reset timer counter, set to count-up mode TA0CCR0 = time; // set CCR0 __bis_SR_register(LPM3_bits + GIE); // LPM3, Interrupts enable }