diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-01-07 22:11:40 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-01-07 22:13:39 -0500 |
commit | f6cd51bfb7de788bfc6ecd88ecd4c454e1403275 (patch) | |
tree | f3fc577ea14932cdaabbaf03af328704059f0abc | |
parent | 83e9e92b9aa5dbcc7fdcd5ad9a5c862884dbae04 (diff) | |
download | kutter-f6cd51bfb7de788bfc6ecd88ecd4c454e1403275.tar.gz kutter-f6cd51bfb7de788bfc6ecd88ecd4c454e1403275.tar.xz kutter-f6cd51bfb7de788bfc6ecd88ecd4c454e1403275.zip |
avr: Clear the ADCSRA/ADCSRB registers on ADC init
When initializing the ADC, explicitly clear the registers (instead of
logically or'ing them with their previous values).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r-- | src/avr/gpio.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/avr/gpio.c b/src/avr/gpio.c index f144cd64..ec782501 100644 --- a/src/avr/gpio.c +++ b/src/avr/gpio.c @@ -280,7 +280,7 @@ gpio_adc_setup(uint8_t pin) } // Enable ADC - ADCSRA |= (1<<ADPS0)|(1<<ADPS1)|(1<<ADPS2)|(1<<ADEN); + ADCSRA = (1<<ADPS0)|(1<<ADPS1)|(1<<ADPS2)|(1<<ADEN); // Disable digital input for this pin #ifdef DIDR2 @@ -316,7 +316,7 @@ gpio_adc_sample(struct gpio_adc g) #if defined(ADCSRB) && defined(MUX5) // the MUX5 bit of ADCSRB selects whether we're reading from channels // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((g.chan >> 3) & 0x01) << MUX5); + ADCSRB = ((g.chan >> 3) & 0x01) << MUX5; #endif ADMUX = ADMUX_DEFAULT | (g.chan & 0x07); |