void SetupADC(void) { unsigned int config1; unsigned int config2; unsigned int config3; unsigned int config4; unsigned int configport_h; unsigned int configport_l; unsigned int configscan_h; unsigned int configscan_l; // TODO explain these settings config1 = ADC_MODULE_ON & ADC_IDLE_STOP & ADC_ADDMABM_ORDER & ADC_AD12B_12BIT & ADC_FORMAT_INTG & ADC_CLK_AUTO & ADC_AUTO_SAMPLING_OFF & ADC_SIMULTANEOUS & ADC_SAMP_OFF; config2 = ADC_VREF_AVDD_AVSS & ADC_SCAN_OFF & ADC_DMA_ADD_INC_1 & ADC_ALT_BUF_OFF & ADC_ALT_INPUT_OFF; config3 = ADC_SAMPLE_TIME_4 & ADC_CONV_CLK_SYSTEM & ADC_CONV_CLK_6Tcy; config4 = ADC_DMA_BUF_LOC_1; configport_h = ENABLE_ALL_DIG_16_31; configport_l = ENABLE_AN0_ANA; configscan_h = SCAN_ALL_16_31; configscan_l = SCAN_ALL_0_15; OpenADC1(config1,config2,config3,config4,configport_l,configport_h, configscan_h,configscan_l); DisableIntADC1(); }
void SetupADC(void) { #if (defined(__IMAGEPROC1) || defined(__IMAGEPROC2)) AD1CHS123 = 0x0000; AD1CON4 = ADC_DMA_BUF_LOC_1; AD1CON3 = ADC_CONV_CLK_SYSTEM & ADC_SAMPLE_TIME_1 & ADC_CONV_CLK_3Tcy; #if defined(__IMAGEPROC1) AD1PCFGL = ENABLE_AN0_ANA & ENABLE_AN1_ANA & ENABLE_AN2_ANA; AD1CSSL = 0x0003; AD1CHS0 = ADC_CH0_NEG_SAMPLEA_VREFN & ADC_CH0_POS_SAMPLEA_AN1; AD1CON2 = ADC_VREF_EXT_AVSS & ADC_SCAN_OFF & ADC_SELECT_CHAN_0 & ADC_DMA_ADD_INC_1 & ADC_ALT_BUF_OFF & ADC_ALT_INPUT_OFF; AD1CON1 = ADC_MODULE_OFF & ADC_IDLE_STOP & ADC_ADDMABM_ORDER & ADC_AD12B_10BIT & ADC_FORMAT_INTG & ADC_CLK_MPWM & ADC_SIMULTANEOUS & ADC_AUTO_SAMPLING_ON & ADC_SAMP_ON; #elif defined(__IMAGEPROC2) AD1PCFGL = ENABLE_AN11_ANA; AD1CSSL = 0x0800; AD1CHS0 = ADC_CH0_NEG_SAMPLEA_VREFN & ADC_CH0_POS_SAMPLEA_AN11; AD1CON2 = ADC_VREF_AVDD_AVSS & ADC_SCAN_OFF & ADC_SELECT_CHAN_0 & ADC_DMA_ADD_INC_1 & ADC_ALT_BUF_OFF & ADC_ALT_INPUT_OFF; AD1CON1 = ADC_MODULE_ON & ADC_IDLE_STOP & ADC_ADDMABM_ORDER & ADC_AD12B_10BIT & ADC_FORMAT_INTG & ADC_CLK_MPWM & ADC_SIMULTANEOUS & ADC_AUTO_SAMPLING_ON & ADC_SAMP_ON; #endif DisableIntADC1(); #endif // (defined(__IMAGEPROC1) || defined(__IMAGEPROC2)) }