@ -63,31 +63,6 @@
/* Public Interface - May be used in end-application: */
/* Public Interface - May be used in end-application: */
/* Macros: */
/* Macros: */
/** 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 .
*/
# define ADC_Init(mode) MACROS{ ADCSRA = ((1 << ADEN) | mode); }MACROE
/** Turns off the ADC. If this is called, any further ADC operations will require a call to the
* ADC_Init ( ) macro before the ADC can be used again .
*/
# define ADC_Off() MACROS{ ADCSRA = 0; }MACROE
/** Indicates if the ADC is enabled. This macro will return boolean true if the ADC subsystem is
* currently enabled , or false otherwise .
*/
# define ADC_GetStatus() ((ADCSRA & (1 << ADEN)) ? true : false)
/** Indicates if the current ADC conversion is completed, or still in progress. This 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 ( ) .
*/
# define ADC_IsReadingComplete() (!(ADCSRA & (1 << ADSC)))
/** Returns the result of the last conversion, as a 16-bit wide integer. */
# define ADC_GetResult() ADC
/** Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference. */
/** Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference. */
# define ADC_REFERENCE_AREF 0
# define ADC_REFERENCE_AREF 0
@ -134,6 +109,51 @@
/** Sets the ADC input clock to prescale by a factor of 128 the AVR's system clock. */
/** 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))
# define ADC_PRESCALE_128 ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))
/* Pseudo-Function Macros: */
# if defined(__DOXYGEN__)
/** 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 .
*
* \ param Mode Mask of ADC settings , including adjustment , prescale , mode and reference
*/
static inline void ADC_Init ( uint8_t Mode ) ;
/** 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 inline void ADC_Off ( void ) ;
/** Indicates if the ADC is currently enabled.
*
* \ return Boolean true if the ADC subsystem is currently enabled , false otherwise .
*/
static inline bool ADC_GetStatus ( void ) ;
/** Indicates if the current ADC conversion is completed, or still in progress.
*
* \ return 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 inline bool ADC_IsReadingComplete ( void ) ;
/** Retrieves the conversion value of the last completed ADC conversion.
*
* \ return The result of the last ADC conversion
*/
static inline uint16_t ADC_GetResult ( void ) ;
# else
# define ADC_Init(mode) MACROS{ ADCSRA = ((1 << ADEN) | mode); }MACROE
# define ADC_Off() MACROS{ ADCSRA = 0; }MACROE
# define ADC_GetStatus() ((ADCSRA & (1 << ADEN)) ? true : false)
# define ADC_IsReadingComplete() (!(ADCSRA & (1 << ADSC)))
# define ADC_GetResult() ADC
# endif
/* Inline Functions: */
/* Inline Functions: */
/** Configures the given ADC channel, ready for ADC conversions. This function sets the
/** 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
* associated port pin as an input and disables the digital portion of the I / O to reduce