Hi
I am currently having a issue about ADC conversion because I always get the first wrong ADC sample but get correct reading after second try. I assume it is reading dummy data.
Now I tried to read three channels starting from channel 0 to channel 2 respectively at first try and second try.
I measured the voltage signal on each channel and know what to expect from ADC channel from zero to two. I obtained incorrect readings.
Here is my extracted code:
// 1st Try // Channel 0 ADC_vConfConv(ADC_FIXED, ADC_ANA_0); ADC_vStartConv(); while(ADC_ubBusy()); ReturnedADC = ADC_DAT & 0x0FFC; adc_result[ADC_ANA_0] = _iror_(ReturnedADC,2); First_Try_Channel[0]=adc_result[ADC_ANA_0]; // Channel 1 ADC_vConfConv(ADC_FIXED, ADC_ANA_1); ADC_vStartConv(); while(ADC_ubBusy()); ReturnedADC = ADC_DAT & 0x0FFC; adc_result[ADC_ANA_1] = _iror_(ReturnedADC,2); First_Try_Channel[1]=adc_result[ADC_ANA_1]; // Channel 2 ADC_vConfConv(ADC_FIXED, ADC_ANA_2); ADC_vStartConv(); while(ADC_ubBusy()); ReturnedADC = ADC_DAT & 0x0FFC; adc_result[ADC_ANA_2] = _iror_(ReturnedADC,2); First_Try_Channel[2]=adc_result[ADC_ANA_2]; // 2nd Try // Channel 0 ADC_vConfConv(ADC_FIXED, ADC_ANA_0); ADC_vStartConv(); while(ADC_ubBusy()); ReturnedADC = ADC_DAT & 0x0FFC; adc_result[ADC_ANA_0] = _iror_(ReturnedADC,2); Second_Try_Channel[0]=adc_result[ADC_ANA_0]; // Channel 1 ADC_vConfConv(ADC_FIXED, ADC_ANA_1); ADC_vStartConv(); while(ADC_ubBusy()); ReturnedADC = ADC_DAT & 0x0FFC; adc_result[ADC_ANA_1] = _iror_(ReturnedADC,2); Second_Try_Channel[1]=adc_result[ADC_ANA_1]; // Channel 2 ADC_vConfConv(ADC_FIXED, ADC_ANA_2); ADC_vStartConv(); while(ADC_ubBusy()); ReturnedADC = ADC_DAT & 0x0FFC; adc_result[ADC_ANA_2] = _iror_(ReturnedADC,2); Second_Try_Channel[2]=adc_result[ADC_ANA_2];
Is there summat wrong with my snippet code?
Regards
RC