#pragma once #include class Adc { public: inline static void* userData_ = nullptr; inline static void (*sampleCallback_)(uint16_t sample, void* userData) = nullptr; static constexpr uint8_t VREF_VCC = 0b0000; static constexpr uint8_t VREF_1_1 = 0b0010; static constexpr uint8_t VREF_2_56 = 0b0110; static constexpr uint8_t VREF_EXT = 0b0001; static constexpr uint8_t IN_ADC0 = 0b0000; static constexpr uint8_t IN_ADC1 = 0b0001; static constexpr uint8_t IN_ADC2 = 0b0010; static constexpr uint8_t IN_ADC3 = 0b0011; static constexpr uint8_t IN_ADC4 = 0b1111; Adc(void (*sampleCallback)(uint16_t sample, void* userData), void* userData = nullptr, uint8_t input = IN_ADC0, uint8_t referance = VREF_2_56); ~Adc(); void setInput(const uint8_t input); void setReferance(const uint8_t referance); void aquire(); };