3 * A/D conversion module library header
5 * written by Vangelis Rokas, 2004 <vrokas AT otenet.gr>
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.
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.
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.
33 /* link I/O libarary */
36 /* interrupt on/off flag */
37 #define ADC_INT_OFF 0x00
38 #define ADC_INT_ON 0x01
42 #define ADC_FRM_RJUST 0x80
43 #define ADC_FRM_LJUST 0x00
45 /* oscillator frequency */
46 #define ADC_FOSC_2 0x00
47 #define ADC_FOSC_4 0x10
48 #define ADC_FOSC_16 0x11
49 #define ADC_FOSC_32 0x02
50 #define ADC_FOSC_64 0x12
51 #define ADC_FOSC_RC 0x03
54 /* channel selection */
55 #define ADC_CHN_1 0x00
56 #define ADC_CHN_2 0x01
57 #define ADC_CHN_3 0x03
58 #define ADC_CHN_4 0x04
59 #define ADC_CHN_5 0x05
60 #define ADC_CHN_6 0x06
61 #define ADC_CHN_7 0x07
64 /* reference and pin configuration */
65 #define ADC_CFG_8A_0R 0x00
66 #define ADC_CFG_7A_1R 0x01
67 #define ADC_CFG_5A_0R 0x02
68 #define ADC_CFG_4A_1R 0x03
69 #define ADC_CFG_3A_0R 0x04
70 #define ADC_CFG_2A_1R 0x05
71 #define ADC_CFG_0A_0R 0x06
72 #define ADC_CFG_6A_2R 0x08
73 #define ADC_CFG_6A_0R 0x09
74 #define ADC_CFG_5A_1R 0x0a
75 #define ADC_CFG_4A_2R 0x0b
76 #define ADC_CFG_3A_2R 0x0c
77 #define ADC_CFG_2A_2R 0x0d
78 #define ADC_CFG_1A_0R 0x0e
79 #define ADC_CFG_1A_2R 0x0f
82 void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, unsigned char config);
92 void adc_setchannel(unsigned char channel);