diff --git a/cpu/sam0_common/periph/adc.c b/cpu/sam0_common/periph/adc.c index 3975e77f3..d7dbfd7f2 100644 --- a/cpu/sam0_common/periph/adc.c +++ b/cpu/sam0_common/periph/adc.c @@ -76,7 +76,11 @@ static void _adc_poweroff(void) static int _adc_configure(adc_res_t res) { - assert(res >= ADC_RES_8BIT && res <= ADC_RES_12BIT); + /* Individual comparison necessary because ADC Resolution Bits are not + * numerically in order and 16Bit (averaging - not currently supported) + * falls between 12bit and 10bit. See datasheet for details */ + assert((res == ADC_RES_8BIT) || (res == ADC_RES_10BIT) || + (res == ADC_RES_12BIT)); _adc_poweroff(); if (ADC_0_DEV->CTRLA.reg & ADC_CTRLA_SWRST || ADC_0_DEV->CTRLA.reg & ADC_CTRLA_ENABLE ) {