最近在搞湿度测试,湿敏电阻下拉接地,对应的AD值为const unsigned int RH_Data[15]= {9,12,17,23,32,44,60,87,126,189,282,475,603,768,887};
计算程序: ADCON0=0b10100001;//选择AN8,
GODONE=1; //启动转换
while(GODONE);//等待转换完成
RH_A_Cache = (ADRESH<<8)|ADRESL;//取AD值
for(y=0;y<15;y++)
{if(RH_A_Cache > RH_Data[y])
{if(y==0){RH_A_Cache = 20;break;}
RH_A_Cache = 10 - (RH_A_Cache - RH_Data[y])*10 / (RH_Data[y+1] - RH_Data[y]);
RH_A_Cache = y*5+20 ;
}
}
程序里红 {MOD}部分导致运算结果溢出进而导致程序运行混乱了,我想请教大家这个问题有没有办法解决(编译器PICC16-9.8PRO和谐)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
RH_A_Cache = 10 - (RH_A_Cache - RH_Data[y])*10 / (RH_Data[y+1] - RH_Data[y]);
else
RH_A_Cache = 10 + (RH_A_Cache - RH_Data[y])*10 / (RH_Data[y] - RH_Data[y+1]);
一周热门 更多>