1 #ifndef _analog_h_included__
2 #define _analog_h_included__
6 void analogReference(uint8_t mode);
7 int16_t analogRead(uint8_t pin);
8 int16_t adc_read(uint8_t mux);
10 #define ADC_REF_POWER (1<<REFS0)
11 #define ADC_REF_INTERNAL ((1<<REFS1) | (1<<REFS0))
12 #define ADC_REF_EXTERNAL (0)
14 // These prescaler values are for high speed mode, ADHSM = 1
15 #if F_CPU == 16000000L
16 #define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS1))
17 #elif F_CPU == 8000000L
18 #define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS0))
19 #elif F_CPU == 4000000L
20 #define ADC_PRESCALER ((1<<ADPS2))
21 #elif F_CPU == 2000000L
22 #define ADC_PRESCALER ((1<<ADPS1) | (1<<ADPS0))
23 #elif F_CPU == 1000000L
24 #define ADC_PRESCALER ((1<<ADPS1))
26 #define ADC_PRESCALER ((1<<ADPS0))
29 // some avr-libc versions do not properly define ADHSM
30 #if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)