|
enum | Channel : uint8_t {
Channel0 = 0,
Channel1 = 1,
Channel2 = 2,
Channel3 = 3,
Channel4 = 4,
Channel5 = 5,
Channel6 = 6,
Channel7 = 7,
Channel8 = 8,
Channel9 = 9,
Channel10 = 10,
Channel11 = 11,
Channel12 = 12,
Channel13 = 13,
Channel14 = 14,
Channel15 = 15,
Channel16 = 16,
Channel17 = 17,
Channel18 = 18,
Channel::BatDiv2 = 18,
Channel::TemperatureSensor = 16,
Channel::InternalReference = 17
} |
|
enum | SampleTime : uint8_t {
SampleTime::Cycles3 = 0b000,
SampleTime::Cycles15 = 0b001,
SampleTime::Cycles28 = 0b010,
SampleTime::Cycles56 = 0b011,
SampleTime::Cycles84 = 0b100,
SampleTime::Cycles112 = 0b101,
SampleTime::Cycles144 = 0b110,
SampleTime::Cycles480 = 0b111
} |
|
enum | ExternalTriggerPolarity { NoTriggerDetection = 0x0u,
RisingEdge = 0x1u,
FallingEdge = 0x2u,
RisingAndFallingEdge = 0x3u
} |
|
enum | RegularConversionExternalTrigger {
Event0 = 0x0u,
Event1 = 0x1u,
Event2 = 0x2u,
Event3 = 0x3u,
Event4 = 0x4u,
Event5 = 0x5u,
Event6 = 0x6u,
Event7 = 0x7u,
Event8 = 0x8u,
Event9 = 0x9u,
Event10 = 0xAu,
Event11 = 0xBu,
Event12 = 0xCu,
Event13 = 0xDu,
Event14 = 0xEu,
Event15 = 0xFu
} |
|
enum | Interrupt : uint32_t { Interrupt::AnalogWatchdog = ADC_CR1_AWDIE,
Interrupt::EndOfRegularConversion = ADC_CR1_EOCIE,
Interrupt::EndOfInjectedConversion = ADC_CR1_JEOCIE,
Interrupt::Overrun = ADC_CR1_OVRIE
} |
|
enum | InterruptFlag : uint32_t {
InterruptFlag::AnalogWatchdog = ADC_SR_AWD,
InterruptFlag::EndOfRegularConversion = ADC_SR_EOC,
InterruptFlag::EndOfInjectedConversion = ADC_SR_JEOC,
InterruptFlag::Overrun = ADC_SR_OVR,
InterruptFlag::All = ADC_SR_AWD | ADC_SR_EOC | ADC_SR_JEOC | ADC_SR_OVR
} |
|
|
template<class... Signals> |
static void | connect () |
|
template<class SystemClock , frequency_t frequency = MHz(10), percent_t tolerance = pct(10)> |
static void | initialize () |
|
static void | enable () |
|
static void | disable () |
|
static void | startConversion () |
|
static bool | isConversionFinished () |
|
static uint16_t | getValue () |
|
static uint16_t | readChannel (Channel channel) |
|
static bool | setChannel (const Channel channel, const SampleTime sampleTime=static_cast< SampleTime >(0b000)) |
|
template<class Gpio > |
static bool | setPinChannel (SampleTime sampleTime=static_cast< SampleTime >(0b000)) |
| Setting the channel for a Pin.
|
|
template<class Gpio > |
static constexpr Channel | getPinChannel () |
| Get the channel for a Pin.
|
|
static Channel | getChannel () |
|
static void | enableFreeRunningMode () |
|
static void | disableFreeRunningMode () |
|
static void | setLeftAdjustResult () |
|
static void | setRightAdjustResult () |
|
static void | enableTemperatureRefVMeasurement () |
| Switch on temperature- and V_REF measurement.
|
|
static void | disableTemperatureRefVMeasurement () |
| Switch on temperature- and V_REF measurement.
|
|
static bool | addChannel (const Channel channel, const SampleTime sampleTime=static_cast< SampleTime >(0b000)) |
| Add a channel to conversion group.
|
|
static void | setSampleTime (const Channel channel, const SampleTime sampleTime=static_cast< SampleTime >(0b000)) |
| change sample time of ADC channel
|
|
static void | enableInterruptVector (const uint32_t priority, const bool enable=true) |
|
static void | enableInterrupt (const Interrupt_t interrupt) |
|
static void | disableInterrupt (const Interrupt_t interrupt) |
|
static InterruptFlag_t | getInterruptFlags () |
|
static void | acknowledgeInterruptFlags (const InterruptFlag_t flags) |
|
static uintptr_t | getDataRegisterAddress () |
|
static void | enableRegularConversionExternalTrigger (ExternalTriggerPolarity externalTriggerPolarity, RegularConversionExternalTrigger regularConversionExternalTrigger) |
|
static void | enableDmaMode () |
|
static void | disableDmaMode () |
|
static bool | getAdcEnabled () |
|
static void | enableDmaRequests () |
|
static void | disableDmaRequests () |
|
static void | enableScanMode () |
|
static void | disableScanMode () |
|
static void | acknowledgeInterruptFlag () |
|
template<uint64_t available, uint64_t requested, percent_t tolerance> |
static void | assertBaudrateInTolerance () |
|
template<double available, double requested, percent_t tolerance> |
static void | assertDurationInTolerance () |
|
static void | configurePurpose () |
| configures a peripheral for a specific purpose
|
|
static bool | getInterruptFlag () |
| Read an interrupt flag.
|
|
static void | getParameter () |
| returns a parameter
|
|
static bool | setChannel (Channel channel) |
|
static void | setParameter () |
| sets a parameter
|
|
Analog/Digital-Converter module (ADC1).
The 12-bit ADC is a successive approximation analog-to-digital converter. It has up to 18 multiplexed channels allowing it to measure signals from 16 external and two internal sources. The result of the ADC is stored in a left-aligned or right-aligned 16-bit data register.
- Author
- Stephan Kugelmann
-
David Hebbeker
-
ekiwi
Channels, which can be used with this ADC.
You can specify the channel by using a pin-name, like PIN_C0, an internal sensor, like TEMPERATURE_SENSOR or just the plain channel number, like CHANNEL_0.
Enum Values | Documentation |
---|
BatDiv2 | Half the V_BAT voltage.
|
TemperatureSensor | Measure the ambient temperature of the device. @li Supported temperature range: -40 to 125 C
@li Precision: +-1.5 C
@see Reference manual (i.e. RM0090) for the formula for the
calculation of the actual temperature.
@note The TSVREFE bit must be set to enable the conversion of
this internal channel. |
InternalReference | Internal reference voltage. @note The TSVREFE bit must be set to enable the conversion of
this internal channel. |
template<class SystemClock , frequency_t frequency = MHz(10), percent_t tolerance = pct(10)>
static void modm::platform::Adc1::initialize |
( |
| ) |
|
|
static |
Initialize and enable the A/D converter.
Enables the ADC clock and switches on the ADC. The ADC clock prescaler will be set as well.
The ADC clock must not exceed 36 MHz for Vdd > 2.4V, or 18MHz for Vdd < 2.4V.