请教一个算法处理方式

2020-01-20 19:13发布

程序中需要求一个商(Z)的结果,这个商(Z)的结果最大不大于65535(10进制),其中有一个定值Y=10000000000(10进制),然后去读一个20位的ADC的数据变量X,这个X的最大结果不大于160000,最小不小于152600,(10进制,因此时读的结果并不是满幅值),然后用Y去除以读到的结果X,最后得到商Z,请问如何处理?
直接用Z=10000000000/X;试过,不行,算出的结果不准确,除法没有乘法准确。请问有什么好的办法去处理?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
wxdn
2020-01-21 20:14
这个程序原本是一个测量电压的程序,将输入电压(0-60V)通过分压电阻分压后给ADC进行采样,由于分压电阻肯定会存在一定的误差,所以程序里就做了一个校正的程序,就是校正10V,校正的时候,输入一个标准的10V电压,然后读ADC的数据,再用10V去除以读到的ADC数据,得到一个倍数,这个倍数就将它存在EEPROM里,然后每次将读到的ADC数据乘以这个倍数就是实际的电压值了。看了5楼的程序,好像行不通。

一周热门 更多>