[solved] Analog pin configuration outside of setup()

But then I’d see a “clean” implementation of analogRead() not checking if it was already set once and rely on it being unchanged but check for the current mode and if needed reactivate AN_INPUT if required.

like

    if (adcChannelConfigured != PIN_MAP[pin].adc_channel || PIN_MAP[pin].pin_mode != AN_INPUT)
    {
        HAL_GPIO_Save_Pin_Mode(PIN_MAP[pin].pin_mode);
        HAL_Pin_Mode(pin, AN_INPUT);
    }

And/or add and document the possibility to “repair” the pin by using pinMode(pin, AN_INPUT); after it got “damaged” by a previous other pinMode() call.

1 Like