52 lines
662 B
C++
52 lines
662 B
C++
|
#pragma once
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
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 <TriggerSource src = TriggerSource::FREE_RUNNING>
|
||
|
struct AutoMode {
|
||
|
static constexpr auto SRC = src;
|
||
|
};
|
||
|
|
||
|
struct FreeRunningMode {
|
||
|
};
|
||
|
|
||
|
struct SingleMode {
|
||
|
};
|
||
|
|
||
|
enum class VoltageRef {
|
||
|
EXTERNAL,
|
||
|
AVCC,
|
||
|
INTERNAL,
|
||
|
};
|
||
|
|
||
|
enum class InputSource {
|
||
|
TEMP,
|
||
|
VBG,
|
||
|
GND,
|
||
|
};
|
||
|
|
||
|
template <class Mode, VoltageRef vref = VoltageRef::AVCC, uint8_t prescaler = 128>
|
||
|
struct Config {
|
||
|
};
|
||
|
|
||
|
} // namespace adc
|