modm API documentation
modm::platform::AdcInterrupt Class Reference

#include <modm/platform/adc/adc_interrupt.hpp>

Inheritance diagram for modm::platform::AdcInterrupt:
modm::platform::Adc modm::AdcInterrupt modm::Adc modm::Adc modm::PeripheralDriver modm::PeripheralDriver

Public Typedefs

typedef uint8_t Channel
 

Public Types

enum  InterruptFlag : uint8_t { All = (1<<ADIF) }
 
enum  Reference : uint8_t {
  InternalVcc = 0, ExternalRef = (1 << REFS0), Internal1V1 = (1 << REFS1), Internal2V56 = (1 << REFS2) | (1 << REFS1),
  Internal2V56WithCap = (1 << REFS2) | (1 << REFS1) | (1 << REFS0)
}
 

Public Member Functions

 MODM_FLAGS8 (InterruptFlag)
 

Static Public Member Functions

static void attachInterruptHandler (Handler handler)
 
static void acknowledgeInterruptFlag ()
 Clears the interrupt flag.
 
static void acknowledgeInterruptFlags (const InterruptFlag_t flags)
 Clears the interrupt flag if flags is set to InterruptFlag::All
 
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
 
template<class... Signals>
static void connect ()
 
static void diableFreeRunningMode ()
 
static void disable ()
 
static void disableAutoTrigger ()
 disable auto triggering of the ADC
 
static void disableFreeRunningMode ()
 
static void disableInterrupt ()
 Disables the ADC Conversion Complete Interrupt.
 
static void enableAutoTrigger ()
 
static void enableFreeRunningMode ()
 
static void enableInterrupt ()
 Enables the ADC Conversion Complete Interrupt.
 
static uint8_t getChannel ()
 
static bool getInterruptFlag ()
 
static InterruptFlag_t getInterruptFlags ()
 
static void getParameter ()
 returns a parameter
 
static uint16_t getValue ()
 
template<class SystemClock , frequency_t frequency = kHz(100), percent_t tolerance = pct(10)>
static void initialize ()
 
static bool isConversionFinished ()
 
static uint16_t readChannel (Channel channel)
 
static void setAutoTriggerSource (uint8_t source)
 
static bool setChannel (Channel channel)
 
static void setLeftAdjustResult ()
 
static void setParameter ()
 sets a parameter
 
static void setReference (Reference reference)
 
static void setRightAdjustResult ()
 
static void startConversion ()
 
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 void disableFreeRunningMode ()
 
static void getParameter ()
 returns a parameter
 
static void setParameter ()
 sets a parameter
 

Static Public Attributes

static Handler handler
 
static constexpr uint8_t Resolution = 10
 

Protected Typedefs

typedef void (* Handler) ()
 

Detailed Description

Author
Niklas Hauser

Member Function Documentation

template<uint64_t available, uint64_t requested, percent_t tolerance>
static void modm::PeripheralDriver::assertBaudrateInTolerance ( )
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.

template<uint64_t available, uint64_t requested, percent_t tolerance>
static void modm::PeripheralDriver::assertBaudrateInTolerance ( )
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.

static void modm::Adc::disableFreeRunningMode ( )
inheritedstatic

Disables free running mode

The ADC will do only one sample and stop. The result will be in the ADC register.

static void modm::Adc::disableFreeRunningMode ( )
inheritedstatic

Disables free running mode

The ADC will do only one sample and stop. The result will be in the ADC register.

static void modm::platform::Adc::enableAutoTrigger ( )
inheritedinlinestatic

Enable auto triggering of the ADC

The ADC will start a conversion on a positive edge of the selected trigger signal.

See also
setAutoTriggerSource
static bool modm::platform::Adc::getInterruptFlag ( )
inheritedinlinestatic
Returns
true if the conversion complete flag is set, false otherwise
static InterruptFlag_t modm::platform::Adc::getInterruptFlags ( )
inheritedinlinestatic
Returns
InterruptFlag::All if the flag is set, 0 otherwise
static uint16_t modm::platform::Adc::readChannel ( Channel  channel)
inheritedinlinestatic

Read the value an analog channel

A normal conversion takes 13 ADC clock cycles. With a clock frequency of for example 200 kHz a conversion therefore needs 65 microseconds. This time increases with a lower frequency.

static void modm::platform::Adc::setAutoTriggerSource ( uint8_t  source)
inheritedinlinestatic

Selects which source will trigger an ADC conversion

A conversion will be triggered by the rising edge of the selected Interrupt Flag. Note that switching from a trigger source that is cleared to a trigger source that is set, will generate a positive edge on the trigger signal. Set to 0 to enable Free Running Mode.

static void modm::platform::Adc::setReference ( Reference  reference)
inheritedinlinestatic

Voltage reference for the ADC

The internal voltage reference options may not be used if an external reference voltage is being applied to the AREF pin.


The documentation for this class was generated from the following files: