]> git.gag.com Git - fw/sdcc/blob - device/include/pic16/adc.h
* device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
[fw/sdcc] / device / include / pic16 / adc.h
1
2 /*
3  * A/D conversion module library header
4  *
5  * written by Vangelis Rokas, 2004 <vrokas AT otenet.gr>
6  *
7  * Devices implemented:
8  *      PIC18F[24][45][28]
9  *
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Library General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24  */
25
26 /*
27 ** $Id$
28 */
29
30 #ifndef __ADC_H__
31 #define __ADC_H__
32
33
34 /* interrupt on/off flag */
35 #define ADC_INT_OFF     0x00
36 #define ADC_INT_ON      0x01
37
38
39 /* output format */
40 #define ADC_FRM_RJUST   0x80
41 #define ADC_FRM_LJUST   0x00
42
43 /* oscillator frequency */
44 #define ADC_FOSC_2      0x00
45 #define ADC_FOSC_4      0x10
46 #define ADC_FOSC_16     0x11
47 #define ADC_FOSC_32     0x02
48 #define ADC_FOSC_64     0x12
49 #define ADC_FOSC_RC     0x03
50
51
52 /* channel selection */
53 #define ADC_CHN_1               0x00
54 #define ADC_CHN_2               0x01
55 #define ADC_CHN_3               0x03
56 #define ADC_CHN_4               0x04
57 #define ADC_CHN_5               0x05
58 #define ADC_CHN_6               0x06
59 #define ADC_CHN_7               0x07
60
61
62 /* reference and pin configuration */
63 #define ADC_CFG_8A_0R   0x00
64 #define ADC_CFG_7A_1R   0x01
65 #define ADC_CFG_5A_0R   0x02
66 #define ADC_CFG_4A_1R   0x03
67 #define ADC_CFG_3A_0R   0x04
68 #define ADC_CFG_2A_1R   0x05
69 #define ADC_CFG_0A_0R   0x06
70 #define ADC_CFG_6A_2R   0x08
71 #define ADC_CFG_6A_0R   0x09
72 #define ADC_CFG_5A_1R   0x0a
73 #define ADC_CFG_4A_2R   0x0b
74 #define ADC_CFG_3A_2R   0x0c
75 #define ADC_CFG_2A_2R   0x0d
76 #define ADC_CFG_1A_0R   0x0e
77 #define ADC_CFG_1A_2R   0x0f
78
79
80 void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, unsigned char config);
81
82 void adc_close(void);
83
84 void adc_conv(void);
85
86 char adc_busy(void);
87
88 int adc_read(void);
89
90 void adc_setchannel(unsigned char channel);
91
92 #endif