当通道0采样时,通道1的值是通道0的一半左右,通道1采样时,通道0的值是通道一的一半左右,已经测量了外部电压正确,AD采样值不正确,排除了电路问题。同时也检查了ADC转换时间也符合最低要求。请问是为什么?下面是AD采样程序。
void AdConvert(void)
{
if(FALSE == M0P_ADC->CR0_f.START)
{
switch(channle){
case 0:
adbuf[0]= M0P_ADC->RESULT0_f.RESULT0;
channle =1;
M0P_ADC->CR2 = 1<<channle; //0x00001000
break;
case 1:
adbuf[1]= M0P_ADC->RESULT1_f.RESULT1;
channle =0;
M0P_ADC->CR2 = 1<<channle; //0x00000010
break;
default: channle =3; break;
}
Adc_ClrAccResult();
Adc_Start();
waitCnt = 0;
}
else {
if(++waitCnt >= 500) {
waitCnt = 0;
AdcConfig();
}
}
}
|