大体的程序如下:
while(1)
{
if(temp_test>=N)//温度测定
{
temp_test=0;
ADCON0|=0x1c;
temp=AD();
if(temp<tempalarm)
tempover=1;
else tempover=0;
}
delay200us();
ADCON0|=0x14;//采集踏板信号
delay200us();
pedal=0;
ADRES=0;
pedal=AD();
PWMupdate(pedal);
continue;
}
char AD(void)
{
char ADtemp=0;
ADRES=0;
ADGO=1;//启动转换
while(ADGO==1){;}//等待转换完成
ADtemp=ADRES;
return ADtemp;
}
//200us延时程序
void delay200us()
{
int k=23;
while(k--){;}
}
温度输入通道直接接了个5V,踏板输入通道通过电位器产生0-5V电压,
程序中先采集温度(值为0xFF),后切换到踏板通道采集 但是每次采出来也是0xFF,
如果把温度采集的程序段去掉就正常了,
感觉是通道切换后AD采样电容上的电压没有降下来,但是加了延时还是这样 不知道怎么回事
请高手指教 |