diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/adc.c b/bacnet-stack/ports/bdk-atxx4-mstp/adc.c index db482649..abee1df0 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/adc.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/adc.c @@ -66,6 +66,7 @@ ISR(ADC_vect) value = ADCL; value |= (ADCH << 8); Sample_Result[index] = value; + __enable_interrupt(); /* clear the mux */ BITMASK_CLEAR(ADMUX, ((1<>2); + SREG = sreg; } return result; @@ -118,10 +123,14 @@ uint16_t adc_result_10bit( uint8_t index) /* 0..7 = ADC0..ADC7, respectively */ { uint16_t result = 0; + uint8_t sreg; if (index < ADC_CHANNELS_MAX) { adc_enable(index); + sreg = SREG; + __disable_interrupt(); result = Sample_Result[index]; + SREG = sreg; } return result;