我要完成一个定时器控制十秒AD采样,再通过I2C总线DA 输出,程序应该是没有问题的,我怀疑是配置位没设好,不知该设哪些位,我没学英文,PIC18F2480这个单片机只有英文的,好费劲。
那个不用定时器定时只用for(i = 0; i < 10000; ++i);来控制采样频率可以正常工作,现在的问题是
void Deal_AD()//根据AD采样输出不同DA值
{
Ad_Sample_result=ADRESL+(ADRESH<<8);//读取并存储AD转换结果(10位,高六位为0)
if(Ad_Sample_result>0x200) //根据采样情况给定基准值
{
DA_data=0xFF; // D/A通道转换数据为0XFF(5V)
I2C_OUT(DA_data,0); // D/A0通道发DA转换数据
I2C_OUT(DA_data,1); // D/A1通道发DA转换数据
}
else{
DA_data=0x3F; // D/A1通道转换数据为0X3F(1.25V)
I2C_OUT(DA_data,0); // D/A1通道发DA转换数据
I2C_OUT(DA_data,1); // D/A1通道发DA转换数据
}
AD_Flag=0;
}这个DA输出5V能输出来,调整AD值应该输出1,25时往往只能输出DA00.9V,DA10.4V,我实在想不通出了什么问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>