X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/ef06bfd1c0ef5272c32808e23d0fd60d2d1bca9c..8f6b4ddf764c3a54e42d00a7502c82c5c3e71b1c:/LUFA/Drivers/AT90USBXXX/ADC.h diff --git a/LUFA/Drivers/AT90USBXXX/ADC.h b/LUFA/Drivers/AT90USBXXX/ADC.h index 341b4e194..12e168834 100644 --- a/LUFA/Drivers/AT90USBXXX/ADC.h +++ b/LUFA/Drivers/AT90USBXXX/ADC.h @@ -35,6 +35,10 @@ * User code should include this file, which will in turn include the correct ADC driver header file for the * currently selected AVR model. */ + +/** \ingroup Group_SubsystemDrivers + * @defgroup Group_ADC ADC Driver - LUFA/Drivers/AT90USBXXX/ADC.h + */ #ifndef __ADC_H__ #define __ADC_H__ @@ -55,4 +59,29 @@ #error "ADC is not available for the currently selected AVR model." #endif + /* Public Interface - May be used in end-application: */ + /* Inline Functions: */ + /** 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. + * + * \param MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask + */ + static inline void ADC_StartReading(const uint8_t MUXMask); + + /** Performs a complete single reading from channel, including a polling spinloop to wait for the + * conversion to complete, and the returning of the converted value. + * + * \param MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask + */ + static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask) ATTR_WARN_UNUSED_RESULT; + + /** 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. + * + * \param Channel ADC channel number to set up for conversions + */ + static inline void ADC_SetupChannel(const uint8_t Channel); + #endif