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
|