Commit | Line | Data |
---|---|---|
f7bca5c4 JH |
1 | #ifndef _analog_h_included__ |
2 | #define _analog_h_included__ | |
3 | ||
4 | #include <stdint.h> | |
5 | ||
6 | void analogReference(uint8_t mode); | |
7 | int16_t analogRead(uint8_t pin); | |
8 | int16_t adc_read(uint8_t mux); | |
9 | ||
10 | #define ADC_REF_POWER (1<<REFS0) | |
11 | #define ADC_REF_INTERNAL ((1<<REFS1) | (1<<REFS0)) | |
12 | #define ADC_REF_EXTERNAL (0) | |
13 | ||
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)) | |
25 | #else | |
26 | #define ADC_PRESCALER ((1<<ADPS0)) | |
27 | #endif | |
28 | ||
29 | // some avr-libc versions do not properly define ADHSM | |
30 | #if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) | |
31 | #if !defined(ADHSM) | |
32 | #define ADHSM (7) | |
33 | #endif | |
34 | #endif | |
35 | ||
36 | #endif |