| 
| 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 14 MHz.