#pragma once #include namespace adc { enum class Mode { SINGLE, AUTO, FREE_RUNNING, }; enum class TriggerSource { FREE_RUNNING, ANALOG_COMP, EXTERNAL_INT_0, TIMER0_COMP_A, TIMER0_OVERFLOW, TIMER1_COMP_B, TIMER1_OVERFLOW, TIMER1_CAPTURE, }; template struct AutoMode { static constexpr auto SRC = src; }; struct FreeRunningMode { }; struct SingleMode { }; enum class VoltageRef { EXTERNAL, AVCC, INTERNAL, }; enum class InputSource { TEMP, VBG, GND, }; template struct Config { }; } // namespace adc