Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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