From b5299c4d69afda9396daf96ddaaa78ef19f2be22 Mon Sep 17 00:00:00 2001 From: Michael Moon Date: Mon, 7 Feb 2011 20:47:32 +1100 Subject: [PATCH] protect ANALOG_MASK from arithmetic errors via de-macro-isation --- analog.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/analog.c b/analog.c index f6b55f2..d3e36de 100644 --- a/analog.c +++ b/analog.c @@ -55,7 +55,7 @@ void analog_init() { adc_running_mask = 1; AIO0_DDR &= ~(ANALOG_MASK); - DIDR0 = ANALOG_MASK & 0x3F; + DIDR0 = (ANALOG_MASK) & 0x3F; // now we start the first conversion and leave the rest to the interrupt ADCSRA |= MASK(ADIE) | MASK(ADSC); @@ -73,7 +73,7 @@ ISR(ADC_vect, ISR_NOBLOCK) { adc_counter = ANALOG_START; adc_running_mask = ANALOG_START_MASK; } - } while ((adc_running_mask & ANALOG_MASK) == 0); + } while ((adc_running_mask & (ANALOG_MASK)) == 0); // start next conversion ADMUX = (adc_counter) | REFERENCE;