/*
LUFA Library
- Copyright (C) Dean Camera, 2013.
+ Copyright (C) Dean Camera, 2021.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2013 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2021 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
/** \ingroup Group_ADC
* \defgroup Group_ADC_AVR8 ADC Peripheral Driver (AVR8)
*
- * \section Sec_ModDescription Module Description
+ * \section Sec_ADC_AVR8_ModDescription Module Description
* On-chip Analogue-to-Digital converter (ADC) driver for supported U4, U6 and U7 model AVRs that contain an ADC
* peripheral internally.
*
* \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.
*
- * \section Sec_ExampleUsage Example Usage
+ * \section Sec_ADC_AVR8_ExampleUsage Example Usage
* The following snippet is an example of how this module may be used within a typical
* application.
*
#error The ADC peripheral driver is not currently available for your selected microcontroller model.
#endif
- /* Private Interface - For use in library only: */
- #if !defined(__DOXYGEN__)
- /* Macros: */
- #define _ADC_GET_MUX_MASK2(y) ADC_CHANNEL ## y
- #define _ADC_GET_MUX_MASK(y) _ADC_GET_MUX_MASK2(y)
- #endif
-
/* Public Interface - May be used in end-application: */
/* Macros: */
/** \name ADC Reference Configuration Masks */
- //@{
+ /**@{*/
/** Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference. */
#define ADC_REFERENCE_AREF 0
/** Reference mask, for using the internally generated 2.56V reference voltage as the ADC reference. */
#define ADC_REFERENCE_INT2560MV ((1 << REFS1) | (1 << REFS0))
- //@}
+ /**@}*/
/** \name ADC Result Adjustment Configuration Masks */
- //@{
+ /**@{*/
/** Left-adjusts the 10-bit ADC result, so that the upper 8 bits of the value returned by the
* \ref ADC_GetResult() macro contain the 8 most significant bits of the result.
*/
* \ref ADC_GetResult() macro contain the 8 least significant bits of the result.
*/
#define ADC_RIGHT_ADJUSTED (0 << ADLAR)
- //@}
+ /**@}*/
/** \name ADC Mode Configuration Masks */
- //@{
+ /**@{*/
/** 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.
*/
* the ADC returns to idle.
*/
#define ADC_SINGLE_CONVERSION (0 << ADATE)
- //@}
+ /**@}*/
/** \name ADC Prescaler Configuration Masks */
- //@{
+ /**@{*/
/** Sets the ADC input clock to prescale by a factor of 2 the AVR's system clock. */
#define ADC_PRESCALE_2 (1 << ADPS0)
/** Sets the ADC input clock to prescale by a factor of 128 the AVR's system clock. */
#define ADC_PRESCALE_128 ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))
- //@}
+ /**@}*/
/** \name ADC MUX Masks */
- //@{
+ /**@{*/
/** MUX mask define for the ADC0 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
#define ADC_CHANNEL0 (0x00 << MUX0)
*
* \param[in] Channel Index of the ADC channel whose MUX mask is to be retrieved.
*/
- #define ADC_GET_CHANNEL_MASK(Channel) _ADC_GET_MUX_MASK(Channel)
- //@}
+ #define ADC_GET_CHANNEL_MASK(Channel) CONCAT_EXPANDED(ADC_CHANNEL, Channel)
+ /**@}*/
/* Inline Functions: */
/** Configures the given ADC channel, ready for ADC conversions. This function sets the