AD转换中电压读数

2019-03-24 19:34发布

写AD转换时想输出5v电压,用的公式为            b=m*500/255/100;    s=m*500/255%100/10;   g=m*500/255%10;但是调节变阻器,最大输出电压为2.5v,如果改成128,则输出5v左右,想问下这种变换公式改怎么写?为什么除以255就不对呢 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
常见泽1
1楼-- · 2019-03-25 18:25
为什么128呢
skyman_liu
2楼-- · 2019-03-25 21:26
我开始的数据类型就是unsigned int 型,那个是溢出了 ,但是我修改数据类型long 后还是不行,我参考网上的列子,别人乘以的是50000,但是结果也显示正常,想问下改怎么修改,麻烦知道下,谢谢!
显示部分的函数是:
b=(m*500/255)/100;
           s=(m*500/255)%100/10;
           g=(m*500/255)%10;       
            
           wdata(b+'0');
           wdata('.');
           wdata(s+'0');
           wdata(g+'0');
David_Lee
3楼-- · 2019-03-26 02:43
原帖由 skyman_liu 于 2011-11-24 22:19 发表
我开始的数据类型就是unsigned int 型,那个是溢出了 ,但是我修改数据类型long 后还是不行,我参考网上的列子,别人乘以的是50000,但是结果也显示正常,想问下改怎么修改,麻烦知道下,谢谢!
显示部分的函数是: ...


你应该先检查你的m是不是在0~255之间变化,先通过wdata()把你的m值输出查看一下。
如果是的话,再检查一下上面的运算是否正确,考虑是否可以优化一下。
b = m/51;
s = (m*100/51)%100/10;
g = (m*100/51)%10;
再优化一下:
s = (m*10/51)%10;

纯理论型的,楼主验证下吧。但第一步的m值是必须要先检验的,不然后面都扯谈。

一周热门 更多>