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();