00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "config.h"
00017
00018 #ifdef USE_ADC
00019 #include "adc_drv.h"
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00035 void init_adc(void)
00036 {
00037 Enable_adc();
00038 # if (ADC_RIGHT_ADJUST_RESULT == 1)
00039 Right_adjust_adc_result();
00040 # elif (ADC_RIGHT_ADJUST_RESULT == 0)
00041 Left_adjust_adc_result();
00042 # else
00043 # error (ADC_RIGHT_ADJUST_RESULT should be 0 or 1... See config.h file)
00044 # endif
00045
00046 # if (ADC_HIGH_SPEED_MODE == 1)
00047 Enable_adc_high_speed_mode();
00048 # elif (ADC_HIGH_SPEED_MODE == 0)
00049 Disable_adc_high_speed_mode();
00050 # else
00051 # error (ADC_HIGH_SPEED_MODE should be 0 or 1... See config.h file)
00052 # endif
00053
00054 # if (ADC_INTERNAL_VREF == 2)
00055 Enable_vcc_vref();
00056 # elif (ADC_INTERNAL_VREF == 1)
00057 Enable_internal_vref();
00058 # elif (ADC_INTERNAL_VREF == 0)
00059 Enable_vcc_vref();
00060 # else
00061 # error (ADC_INTERNAL_VREF should be 0, 1 or 2... See config.h file)
00062 # endif
00063
00064 # if (ADC_IT == 1)
00065 Enable_all_it();
00066 Enable_adc_it();
00067 # elif (ADC_IT == 0)
00068 Disable_adc_it();
00069 # else
00070 # error (ADC_IT should be 0 or 1... See config.h file)
00071 # endif
00072
00073 # if (ADC_PRESCALER == 128)
00074 Set_prescaler(128);
00075 # elif (ADC_PRESCALER == 64)
00076 Set_prescaler(64);
00077 # elif (ADC_PRESCALER == 32)
00078 Set_prescaler(32);
00079 # elif (ADC_PRESCALER == 16)
00080 Set_prescaler(16);
00081 # elif (ADC_PRESCALER == 8)
00082 Set_prescaler( 8);
00083 # elif (ADC_PRESCALER == 4)
00084 Set_prescaler( 4);
00085 # elif (ADC_PRESCALER == 2)
00086 Set_prescaler( 0);
00087 # else
00088 # error (ADC_PRESCALER should be 2, 4, 8, 16, 32, 64 or 128... See config.h file)
00089 # endif
00090 }
00091
00092 #endif // USE_ADC