From e9b9f0b13facd16a7cff56450811a8ef4159d25c Mon Sep 17 00:00:00 2001 From: Paint Your Dragon Date: Tue, 24 May 2022 08:42:00 -0700 Subject: [PATCH] Correctly scale analog reading per issue #4794 --- ports/stm/common-hal/analogio/AnalogIn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/stm/common-hal/analogio/AnalogIn.c b/ports/stm/common-hal/analogio/AnalogIn.c index 3079816e01..9ec93ccc84 100644 --- a/ports/stm/common-hal/analogio/AnalogIn.c +++ b/ports/stm/common-hal/analogio/AnalogIn.c @@ -204,8 +204,8 @@ uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) { uint16_t value = (uint16_t)HAL_ADC_GetValue(&AdcHandle); HAL_ADC_Stop(&AdcHandle); - // // Shift the value to be 16 bit. - return value << 4; + // Stretch 12-bit ADC reading to 16-bit range + return (value << 4) | (value >> 8); } float common_hal_analogio_analogin_get_reference_voltage(analogio_analogin_obj_t *self) {