00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef A2D_H
00019 #define A2D_H
00020
00021
00022
00023
00024
00025
00026
00027
00028 #define ADC_PRESCALE_DIV2 0x00
00029 #define ADC_PRESCALE_DIV4 0x02
00030 #define ADC_PRESCALE_DIV8 0x03
00031 #define ADC_PRESCALE_DIV16 0x04
00032 #define ADC_PRESCALE_DIV32 0x05
00033 #define ADC_PRESCALE_DIV64 0x06
00034 #define ADC_PRESCALE_DIV128 0x07
00035 // default value
00036 #define ADC_PRESCALE ADC_PRESCALE_DIV64
00037
00038 #define ADC_PRESCALE_MASK 0x07
00039
00040
00041
00042
00043 #define ADC_REFERENCE_AREF 0x00
00044 #define ADC_REFERENCE_AVCC 0x01
00045 #define ADC_REFERENCE_RSVD 0x02
00046 #define ADC_REFERENCE_256V 0x03
00047 // default value
00048 #define ADC_REFERENCE ADC_REFERENCE_AVCC
00049
00050 #define ADC_REFERENCE_MASK 0xC0
00051
00052
00053 #define ADC_MUX_MASK 0x1F
00054
00055
00056
00057 #define ADC_CH_ADC0 0x00
00058 #define ADC_CH_ADC1 0x01
00059 #define ADC_CH_ADC2 0x02
00060 #define ADC_CH_ADC3 0x03
00061 #define ADC_CH_ADC4 0x04
00062 #define ADC_CH_ADC5 0x05
00063 #define ADC_CH_ADC6 0x06
00064 #define ADC_CH_ADC7 0x07
00065 #define ADC_CH_122V 0x1E // 1.22V voltage reference
00066 #define ADC_CH_AGND 0x1F // AGND
00067
00068
00069 #define ADC_CH_0_0_DIFF10X 0x08
00070 #define ADC_CH_1_0_DIFF10X 0x09
00071 #define ADC_CH_0_0_DIFF200X 0x0A
00072 #define ADC_CH_1_0_DIFF200X 0x0B
00073 #define ADC_CH_2_2_DIFF10X 0x0C
00074 #define ADC_CH_3_2_DIFF10X 0x0D
00075 #define ADC_CH_2_2_DIFF200X 0x0E
00076 #define ADC_CH_3_2_DIFF200X 0x0F
00077
00078 #define ADC_CH_0_1_DIFF1X 0x10
00079 #define ADC_CH_1_1_DIFF1X 0x11
00080 #define ADC_CH_2_1_DIFF1X 0x12
00081 #define ADC_CH_3_1_DIFF1X 0x13
00082 #define ADC_CH_4_1_DIFF1X 0x14
00083 #define ADC_CH_5_1_DIFF1X 0x15
00084 #define ADC_CH_6_1_DIFF1X 0x16
00085 #define ADC_CH_7_1_DIFF1X 0x17
00086
00087 #define ADC_CH_0_2_DIFF1X 0x18
00088 #define ADC_CH_1_2_DIFF1X 0x19
00089 #define ADC_CH_2_2_DIFF1X 0x1A
00090 #define ADC_CH_3_2_DIFF1X 0x1B
00091 #define ADC_CH_4_2_DIFF1X 0x1C
00092 #define ADC_CH_5_2_DIFF1X 0x1D
00093
00094
00095
00096 #ifdef ADCSRA
00097 #ifndef ADCSR
00098 #define ADCSR ADCSRA
00099 #endif
00100 #endif
00101 #ifdef ADATE
00102 #define ADFR ADATE
00103 #endif
00104
00105
00106
00107
00108
00109 void a2dInit(void);
00110
00111
00112 void a2dOff(void);
00113
00114
00115
00116
00117 void a2dSetPrescaler(unsigned char prescale);
00118
00119
00120
00121
00122 void a2dSetReference(unsigned char ref);
00123
00124
00125 void a2dSetChannel(unsigned char ch);
00126
00127
00128 void a2dStartConvert(void);
00129
00130
00131 u08 a2dIsComplete(void);
00132
00133
00134
00135 unsigned short a2dConvert10bit(unsigned char ch);
00136
00137
00138
00139 unsigned char a2dConvert8bit(unsigned char ch);
00140
00141 #endif