1.使用ADC10模块,为了提高采样率,使用函数ADC10_ical(int iVal, ADC10_CAL_VBG)校准时,在自带的Excel表格中设置full range counts为256,vdd为 2.5V,得到1.3V为133。但是在c语言代码编译完成后,输入一个小于2.5V电压时,从watch窗口看到ADC10_iGetData的值超过256,在300到500多之间跳变。
程序代码:
ADC10_start(ADC10_FULLRANGE);
ADC10_ical(0x84, ADC10_CAL_VBG);
ADC10_startADC();
2.上面的代码如果放在循环里,watch窗口看到的ADC10_iGetData值,不论输入多少的电压,只会在500以下跳变(设置中断观察,其中FULL RANGE COUNT设置为1024。)
3.在程序中如果不加入
if(b>ADC10_iGetData()>a)
ADC10_iGetData()的值也是不论输入多少的电压,只会在500以下跳变(设置中断观察,其中FULL RANGE COUNT设置为1024。)
有高手知道原因吗? |