一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
楼主: fwj59

求助 关于C51单片机的小数点四舍五入处理

[复制链接]
 楼主| 发表于 2014-3-31 11:07 | 显示全部楼层

8055 发表于 2014-3-31 10:02
这样可能比直接加0.5快一点对吧。我一般就不理会小数,全是整数运算,没做过什么精密的东西。

不是做精密的东西。只是在学习DA的换算。   

只是想做一个输出电压为5.4V(可调)的电压 ,DA用12位并口的,满量程为12V,
原来是用:4096/12=341.3333  然后5.4*341.3333=1843.2  运行后发现算法不对,不是这个1843

想问一下,应该如何算才对

回复

使用道具 举报

发表于 2014-3-31 11:13 | 显示全部楼层
fwj59 发表于 2014-3-31 11:07
8055 发表于 2014-3-31 10:02
这样可能比直接加0.5快一点对吧。我一般就不理会小数,全是整数运算,没做 ...

给4095时是12v输出吗?

回复

使用道具 举报

 楼主| 发表于 2014-3-31 11:21 | 显示全部楼层
8055 发表于 2014-3-31 11:13
给4095时是12v输出吗?

是的
回复

使用道具 举报

发表于 2014-3-31 11:24 | 显示全部楼层

给1843不是5.4v?
5.4/(12/4096)
回复

使用道具 举报

 楼主| 发表于 2014-3-31 11:30 | 显示全部楼层
8055 发表于 2014-3-31 11:24
给1843不是5.4v?
5.4/(12/4096)

给1843是5.4V
5.4/12/4096  这样就可以了吗?我试一下,谢谢你了
回复

使用道具 举报

发表于 2014-3-31 11:35 | 显示全部楼层
fwj59 发表于 2014-3-31 11:30
给1843是5.4V
5.4/12/4096  这样就可以了吗?我试一下,谢谢你了

你按你写的这个算式用计算器按一个试一试
回复

使用道具 举报

 楼主| 发表于 2014-3-31 11:47 | 显示全部楼层
8055 发表于 2014-3-31 11:35
你按你写的这个算式用计算器按一个试一试

好的,我试一下,谢谢你
回复

使用道具 举报

发表于 2014-3-31 22:38 | 显示全部楼层
乘以10加5再除以10,都是整数运算。  5楼说的没错
回复

使用道具 举报

 楼主| 发表于 2014-4-2 11:08 | 显示全部楼层
已经处理好了,谢谢大家。

点评

怎么处理的?说给大家听听呀~  发表于 2014-4-2 11:11
回复

使用道具 举报

 楼主| 发表于 2014-4-2 12:28 | 显示全部楼层
8055 发表于 2014-3-31 11:35
你按你写的这个算式用计算器按一个试一试

用求模和求余的方法

如xl=5.4V=540mV

xlh=xl/100;xll=xl%100;//把540分成500和40

y=4095/12;b=4095/12%100;//把4095/12=341.25    把341.25分成341和0.25*100

dac(xlh*y+(xll*y+xlh*b+xll*b/100)/100);//dac(5*341+(40*5+5*25+40*25/100)/100);



办法比较土,先把小数全部变成整数,然后在把整数相加后在变成小数。不知道在家的DA程序如何写的,

回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-22 02:46 , Processed in 0.045316 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表