| 155 |
Kevin |
1 |
#ifndef ADC_H
|
|
|
2 |
#define ADC_H
|
|
|
3 |
|
|
|
4 |
#define ADC_CHANNEL_AN0 0b0000
|
|
|
5 |
#define ADC_CHANNEL_AN1 0b0001
|
|
|
6 |
#define ADC_CHANNEL_AN2 0b0010
|
|
|
7 |
#define ADC_CHANNEL_AN3 0b0011
|
|
|
8 |
#define ADC_CHANNEL_AN4 0b0100
|
|
|
9 |
#define ADC_CHANNEL_AN5 0b0101
|
|
|
10 |
#define ADC_CHANNEL_AN6 0b0110
|
|
|
11 |
#define ADC_CHANNEL_AN7 0b0111
|
|
|
12 |
#define ADC_CHANNEL_AN8 0b1000
|
|
|
13 |
#define ADC_CHANNEL_AN9 0b1001
|
|
|
14 |
#define ADC_CHANNEL_AN10 0b1010
|
|
|
15 |
#define ADC_CHANNEL_AN11 0b1011
|
|
|
16 |
#define ADC_CHANNEL_AN12 0b1100
|
|
|
17 |
#define ADC_CHANNEL_VDDCORE 0b1110
|
|
|
18 |
#define ADC_CHANNEL_ABG 0b1111
|
|
|
19 |
|
|
|
20 |
#define ADC_TAD_20 0b111
|
|
|
21 |
#define ADC_TAD_16 0b110
|
|
|
22 |
#define ADC_TAD_12 0b101
|
|
|
23 |
#define ADC_TAD_8 0b100
|
|
|
24 |
#define ADC_TAD_6 0b011
|
|
|
25 |
#define ADC_TAD_4 0b010
|
|
|
26 |
#define ADC_TAD_2 0b001
|
|
|
27 |
#define ADC_TAD_0 0b000
|
|
|
28 |
|
|
|
29 |
#define ADC_FOSC_64_ 0b110
|
|
|
30 |
#define ADC_FOSC_32_ 0b010
|
|
|
31 |
#define ADC_FOSC_16_ 0b101
|
|
|
32 |
#define ADC_FOSC_8_ 0b001
|
|
|
33 |
#define ADC_FOSC_4_ 0b100
|
|
|
34 |
#define ADC_FOSC_2_ 0b000
|
|
|
35 |
#define ADC_FOSC_FRC_ 0b011
|
|
|
36 |
|
|
|
37 |
typedef struct __ADC_DATA {
|
|
|
38 |
char last_channel;
|
|
|
39 |
unsigned int result;
|
|
|
40 |
} ADC_DATA;
|
|
|
41 |
|
|
|
42 |
void ADC_Init(ADC_DATA *data, char TAD, char FOSC);
|
|
|
43 |
void ADC_Start(char channel);
|
|
|
44 |
void ADC_Stop(void);
|
|
|
45 |
void ADC_Interrupt_Handler(void);
|
|
|
46 |
char ADC_Get_Result(unsigned int *ret);
|
|
|
47 |
|
|
|
48 |
#endif
|