aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/avr/analog.c
diff options
context:
space:
mode:
authorGravatar stein3 <stein3@gmail.com>2020-10-06 07:15:41 -0700
committerGravatar stein3 <stein3@gmail.com>2020-10-06 07:15:41 -0700
commit2e402741a89c5eec8cf30c966ce6f36d6ec9249b (patch)
tree3592e8c5e6bd19943ae55db7fc02a5f755afbb51 /drivers/avr/analog.c
parent3e5e4f74272c610bb9fa737f674f8e65ed6100ca (diff)
parent2013f6313430b977e557e482d30daa279a46e75d (diff)
downloadqmk_firmware-2e402741a89c5eec8cf30c966ce6f36d6ec9249b.tar.gz
Merge branch 'master' into meteor
Diffstat (limited to 'drivers/avr/analog.c')
-rw-r--r--drivers/avr/analog.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/avr/analog.c b/drivers/avr/analog.c
index 9b8397b93..8d299ffdb 100644
--- a/drivers/avr/analog.c
+++ b/drivers/avr/analog.c
@@ -97,10 +97,11 @@ uint8_t pinToMux(pin_t pin) {
#endif
// clang-format on
}
+ return 0;
}
int16_t adc_read(uint8_t mux) {
- uint8_t low;
+ uint16_t low;
// Enable ADC and configure prescaler
ADCSRA = _BV(ADEN) | ADC_PRESCALER;
@@ -128,5 +129,10 @@ int16_t adc_read(uint8_t mux) {
// Must read LSB first
low = ADCL;
// Must read MSB only once!
- return (ADCH << 8) | low;
+ low |= (ADCH << 8);
+
+ // turn off the ADC
+ ADCSRA &= ~(1 << ADEN);
+
+ return low;
}