00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "aduc7026.h"
00019
00020 #include "global.h"
00021 #include "a2d.h"
00022
00023
00024 void a2dInit(void)
00025 {
00026 #define ADCENCONV (1<<7)
00027 #define ADCBUSY (1<<6)
00028 #define ADCPWR (1<<5)
00029 #define ADCMODE_SE (0x00<<3)
00030 #define ADCMODE_DIFF (0x01<<3)
00031 #define ADCMODE_PDIFF (0x02<<3)
00032 #define ADCMODE_MASK (0x03<<3)
00033 #define ADCCONV_SINGLE (0x03)
00034 #define ADCCONV_CONT (0x04)
00035
00036
00037 ADCCON |= ADCPWR;
00038
00039
00040 REFCON = 0x01;
00041 }
00042
00043 int a2dConvert(int channel)
00044 {
00045
00046 ADCCON &= ~ADCMODE_MASK;
00047 ADCCON |= ADCMODE_SE;
00048
00049 ADCCP = channel;
00050
00051 ADCCON |= ADCENCONV | ADCCONV_SINGLE;
00052
00053 while(!ADCSTA);
00054
00055 return ADCDAT>>16;
00056 }