本帖最后由 manaibi 于 2022-5-27 14:33 编辑
PICC C 编译器的浮点算法有问题,我也是,如adsum1=adresult.AD_DATA*50.0/1023;得到的结果为0。如果改为adsum1=adresult.AD_DATA*50/1023;就可得到结果,但是精度不够。
还要注意数据类型的范围,防止数据溢出,得到的结果不正确。
PICC C 编译器的浮点算法有问题,编程就比较麻烦,我是这样编写的:
adsum1=adresult.AD_DATA;
adsum=(adsum1*48/100)+adsum1*8/1000+adsum1*7/10000+adsum1*5/10/10000+adsum1*8/100/10000;
保留两位小数点。
if(adresult.AD_DATA!=0)adsum+=1;//加1校准
我用的是MPLAB-IDE9.83版本的。
|