Series U4, U6 and U7 Model ADC Driver
[ADC Driver - LUFA/Drivers/Peripheral/ADC.h]

Defines

#define ADC_REFERENCE_AREF   0
#define ADC_REFERENCE_AVCC   (1 << REFS0)
#define ADC_REFERENCE_INT2560MV   ((1 << REFS1)| (1 << REFS0))
#define ADC_LEFT_ADJUSTED   (1 << ADLAR)
#define ADC_RIGHT_ADJUSTED   (0 << ADLAR)
#define ADC_FREE_RUNNING   (1 << ADATE)
#define ADC_SINGLE_CONVERSION   (0 << ADATE)
#define ADC_PRESCALE_2   (1 << ADPS0)
#define ADC_PRESCALE_4   (1 << ADPS1)
#define ADC_PRESCALE_8   ((1 << ADPS0) | (1 << ADPS1))
#define ADC_PRESCALE_16   (1 << ADPS2)
#define ADC_PRESCALE_32   ((1 << ADPS2) | (1 << ADPS0))
#define ADC_PRESCALE_64   ((1 << ADPS2) | (1 << ADPS1))
#define ADC_PRESCALE_128   ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))
#define ADC_CHANNEL0   0x00
#define ADC_CHANNEL1   0x01
#define ADC_CHANNEL4   0x04
#define ADC_CHANNEL5   0x05
#define ADC_CHANNEL6   0x06
#define ADC_CHANNEL7   0x07
#define ADC_1100MV_BANDGAP   0x1E
#define ADC_CHANNEL8   0x20
#define ADC_CHANNEL9   0x21
#define ADC_CHANNEL10   0x22
#define ADC_CHANNEL11   0x23
#define ADC_CHANNEL12   0x24
#define ADC_CHANNEL13   0x25
#define ADC_INT_TEMP_SENS   0x27

Functions

static void ADC_Init (uint8_t Mode)
static void ADC_ShutDown (void)
static bool ADC_GetStatus (void)
static bool ADC_IsReadingComplete (void)
static uint16_t ADC_GetResult (void)
static void ADC_SetupChannel (const uint8_t Channel)
static void ADC_StartReading (const uint8_t MUXMask)
static uint16_t ADC_GetChannelReading (const uint8_t MUXMask) ATTR_WARN_UNUSED_RESULT

Detailed Description

ADC driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.

Note:
This file should not be included directly. It is automatically included as needed by the ADC driver dispatch header located in LUFA/Drivers/Peripheral/ADC.h.

Define Documentation

#define ADC_1100MV_BANDGAP   0x1E

MUX mask define for the internal 1.1V bandgap channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL0   0x00

MUX mask define for the ADC0 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL1   0x01

MUX mask define for the ADC1 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL10   0x22

MUX mask define for the ADC10 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

Note:
Note available on all AVR models.
#define ADC_CHANNEL11   0x23

MUX mask define for the ADC11 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

Note:
Note available on all AVR models.
#define ADC_CHANNEL12   0x24

MUX mask define for the ADC12 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

Note:
Note available on all AVR models.
#define ADC_CHANNEL13   0x25

MUX mask define for the ADC13 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

Note:
Note available on all AVR models.
#define ADC_CHANNEL4   0x04

MUX mask define for the ADC4 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL5   0x05

MUX mask define for the ADC5 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL6   0x06

MUX mask define for the ADC6 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL7   0x07

MUX mask define for the ADC7 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL8   0x20

MUX mask define for the ADC8 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

Note:
Note available on all AVR models.
#define ADC_CHANNEL9   0x21

MUX mask define for the ADC9 channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

Note:
Note available on all AVR models.
#define ADC_FREE_RUNNING   (1 << ADATE)

Sets the ADC mode to free running, so that conversions take place continuously as fast as the ADC is capable of at the given input clock speed.

#define ADC_INT_TEMP_SENS   0x27

MUX mask define for the internal temperature sensor channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

Note:
Note available on all AVR models.
#define ADC_LEFT_ADJUSTED   (1 << ADLAR)

Left-adjusts the 10-bit ADC result, so that the upper 8 bits of the value returned by the ADC_GetResult() macro contain the 8 most significant bits of the result.

#define ADC_PRESCALE_128   ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))

Sets the ADC input clock to prescale by a factor of 128 the AVR's system clock.

#define ADC_PRESCALE_16   (1 << ADPS2)

Sets the ADC input clock to prescale by a factor of 16 the AVR's system clock.

#define ADC_PRESCALE_2   (1 << ADPS0)

Sets the ADC input clock to prescale by a factor of 2 the AVR's system clock.

#define ADC_PRESCALE_32   ((1 << ADPS2) | (1 << ADPS0))

Sets the ADC input clock to prescale by a factor of 32 the AVR's system clock.

#define ADC_PRESCALE_4   (1 << ADPS1)

Sets the ADC input clock to prescale by a factor of 4 the AVR's system clock.

#define ADC_PRESCALE_64   ((1 << ADPS2) | (1 << ADPS1))

Sets the ADC input clock to prescale by a factor of 64 the AVR's system clock.

#define ADC_PRESCALE_8   ((1 << ADPS0) | (1 << ADPS1))

Sets the ADC input clock to prescale by a factor of 8 the AVR's system clock.

#define ADC_REFERENCE_AREF   0

Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference.

#define ADC_REFERENCE_AVCC   (1 << REFS0)

Reference mask, for using the voltage present at the AVR's AVCC pin for the ADC reference.

#define ADC_REFERENCE_INT2560MV   ((1 << REFS1)| (1 << REFS0))

Reference mask, for using the internally generated 2.56V reference voltage as the ADC reference.

#define ADC_RIGHT_ADJUSTED   (0 << ADLAR)

Right-adjusts the 10-bit ADC result, so that the lower 8 bits of the value returned by the ADC_GetResult() macro contain the 8 least significant bits of the result.

#define ADC_SINGLE_CONVERSION   (0 << ADATE)

Sets the ADC mode to single conversion, so that only a single conversion will take place before the ADC returns to idle.


Function Documentation

static uint16_t ADC_GetChannelReading ( const uint8_t  MUXMask  )  [inline, static]

Performs a complete single reading from channel, including a polling spin-loop to wait for the conversion to complete, and the returning of the converted value.

Parameters:
[in] MUXMask Mask comprising of an ADC channel mask, reference mask and adjustment mask
static uint16_t ADC_GetResult ( void   )  [inline, static]

Retrieves the conversion value of the last completed ADC conversion.

Returns:
The result of the last ADC conversion
static bool ADC_GetStatus ( void   )  [inline, static]

Indicates if the ADC is currently enabled.

Returns:
Boolean true if the ADC subsystem is currently enabled, false otherwise.
static void ADC_Init ( uint8_t  Mode  )  [inline, static]

Initializes the ADC, ready for conversions. This must be called before any other ADC operations. The "mode" parameter should be a mask comprised of a conversion mode (free running or single) and prescaler masks.

Parameters:
[in] Mode Mask of ADC settings, including adjustment, prescale, mode and reference
static bool ADC_IsReadingComplete ( void   )  [inline, static]

Indicates if the current ADC conversion is completed, or still in progress.

Returns:
Boolean false if the reading is still taking place, or true if the conversion is complete and ready to be read out with ADC_GetResult()
static void ADC_SetupChannel ( const uint8_t  Channel  )  [inline, static]

Configures the given ADC channel, ready for ADC conversions. This function sets the associated port pin as an input and disables the digital portion of the I/O to reduce power consumption.

Note:
This must only be called for ADC channels with are connected to a physical port pin of the AVR, denoted by its special alternative function ADCx.
The channel number must be specified as an integer, and NOT a ADC_CHANNELx mask.
Parameters:
[in] Channel ADC channel number to set up for conversions
static void ADC_ShutDown ( void   )  [inline, static]

Turns off the ADC. If this is called, any further ADC operations will require a call to ADC_Init() before the ADC can be used again.

static void ADC_StartReading ( const uint8_t  MUXMask  )  [inline, static]

Starts the reading of the given channel, but does not wait until the conversion has completed. Once executed, the conversion status can be determined via the ADC_IsReadingComplete() macro and the result read via the ADC_GetResult() macro.

Parameters:
[in] MUXMask Mask comprising of an ADC channel mask, reference mask and adjustment mask

Generated by  doxygen 1.6.2