aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-01-07 22:11:40 -0500
committerKevin O'Connor <kevin@koconnor.net>2018-01-07 22:13:39 -0500
commitf6cd51bfb7de788bfc6ecd88ecd4c454e1403275 (patch)
treef3fc577ea14932cdaabbaf03af328704059f0abc
parent83e9e92b9aa5dbcc7fdcd5ad9a5c862884dbae04 (diff)
downloadkutter-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.c4
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);