modm API documentation
|
#include <modm/platform/adc/adc_1.hpp>
Public Types | |
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 } |
Public Member Functions | |
MODM_FLAGS32 (Interrupt) | |
MODM_FLAGS32 (InterruptFlag) | |
Static Public Member Functions | |
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<baudrate_t available, baudrate_t requested, percent_t tolerance> | |
static void | assertBaudrateInTolerance () |
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 | |
Static Public Attributes | |
static constexpr uint8_t | Resolution = 12 |
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.
|
strong |
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.
|
strong |
Possible interrupts.
An interrupt can be produced on the end of conversion for regular and injected groups, when the analog watchdog status bit is set and when the overrun status bit is set.
|
strong |
Enum mapping all events on a external trigger converter. The source mapped to each event varies on controller family, refer to the ADC external trigger section on reference manual of your controller for more information
|
strong |
Sampling time of the input voltage.
Total conversion time is T_con = Sampling time + 12 cycles
|
inheritedstatic |
Acknowledge an interrupt flag.
We use acknowledge here, since it describes the intention rather than the actual implementation.
|
inlinestatic |
Clears the specified interrupt flag.
flag | The interrupt flag, which shall be cleared. |
|
inheritedinlinestatic |
Since baudrates are usually generated by prescaling a system clock, only several distinct values can be generated. This method checks if the user requested baudrate is within error tolerance of the system achievable baudrate.
|
inlinestatic |
Disable Dma mode for the ADC
|
inlinestatic |
disable dma selection for the ADC. If this is disabled no new DMA requests are issued after last transfer
|
inlinestatic |
|
inlinestatic |
Disables scan mode
|
inlinestatic |
Enable Dma mode for the ADC
|
inlinestatic |
enable DMA selection for the ADC. If this is enabled DMA requests are issued as long as data are converted and the adc has dma enabled
|
inlinestatic |
Enables the ADC Conversion Complete Interrupt.
You could catch the interrupt using this example function:
MODM_ISR(ADC)
MODM_ISR(ADC1_2)
priority | Priority to set |
interrupt | The interrupt, which shall be enabled. See Interrupt for available interrupts. |
|
inlinestatic |
Enables scan mode
|
inlinestatic |
get if adc is enabled
|
inlinestatic |
Returns if the th interrupt flags set.
|
static |
|
inheritedstatic |
Analog channel selection.
true
if the channel exists and was available, false
otherwise
|
inlinestatic |
Analog channel selection.
This not for scan mode. The number of channels will be set to 1, the channel selected and the corresponding pin will be set to analog input. If the the channel is modified during a conversion, the current conversion is reset and a new start pulse is sent to the ADC to convert the new chosen channnel / group of channels.
channel | The channel which shall be read. |
sampleTime | The sample time to sample the input voltage. |
|
inlinestatic |
Start a new conversion or continuous conversions.