From 3c039d9c1e076e6c036f4097edd9985a936fb7f1 Mon Sep 17 00:00:00 2001 From: Apehaenger Date: Tue, 13 Aug 2024 15:28:03 +0200 Subject: [PATCH] [adc] Fix wrong channel shift on STM32C0/G0 --- src/modm/platform/adc/stm32f0/adc_impl.hpp.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modm/platform/adc/stm32f0/adc_impl.hpp.in b/src/modm/platform/adc/stm32f0/adc_impl.hpp.in index ec3ccd0c9a..80e0d722a3 100644 --- a/src/modm/platform/adc/stm32f0/adc_impl.hpp.in +++ b/src/modm/platform/adc/stm32f0/adc_impl.hpp.in @@ -196,7 +196,7 @@ modm::platform::Adc{{ id }}::setChannels(std::span channels) uint32_t config = 0xFFFF'FFFF; for (const auto [i, ch] : modm::enumerate(channels)) { enableInternalChannel(ch); - config = (config & ~((0xF) << i)) | (std::to_underlying(ch) << i); + config = (config & ~((0xF) << i*4)) | (std::to_underlying(ch) << i*4); } ADC1->CHSELR = config; waitChannelConfigReady();