//Global variable //volatile int adc_count = 16; #pragma vector = ADC10_VECTOR __interrupt void ADC_ISR(void) { //Decremement ADC read adc_count--; //Save A15 if(adc_count == 15){ //Save battery voltage A15_result = ADC10MEM0; } //Save A14, Rx RSSI else if(adc_count == 14){ //Save RSSI voltage A14_result = ADC10MEM0; //RSSI floating = ~1.15V, wake at ~1.3V if(rssi_result >= 240){ ////////////////// //System Wake-Up// ////////////////// //Activate system. Wake Up G_AWAKE = 1; PJOUT_PDN |= RX_PDN; //Exit low power mode _BIC_SR(LPM0_EXIT); //Reset time-out interrupts timer_count = 0; TA0CTL |= TACLR; // Enable interrupts for CCR0. TA0CCTL0 = CCIE; } } //Save A1 else if(adc_count == 1){ //Save position A1_result = ADC10MEM0; } else if(adc_count == 0){ //Reset count adc_count = 15; //Clear flag ADC10IFG = 0; } }