请教

[复制链接]
2484|14
 楼主| ayb_ice 发表于 2007-11-22 10:35 | 显示全部楼层 |阅读模式
只有4位LCD带小数点显示,加x10,x100符号,可能显示的数据在0.001~999999.999之间,因为只有4位显示所以数据大时要配合x10,x100,而且要舍掉后面的数据,感觉这样的数据显示比较麻烦。
请教大家有什么好的方法。
ldyeah 发表于 2007-11-22 11:01 | 显示全部楼层

lz 是LED吧?

如果是LED,只有4位那只有这样显示啊
X10,X100可以另外加两个发光二极管表示下
 楼主| ayb_ice 发表于 2007-11-22 11:03 | 显示全部楼层

是LCD

我是想请教有什么好的算法
gyt 发表于 2007-11-22 11:08 | 显示全部楼层

走马显示

huangqi412 发表于 2007-11-22 17:15 | 显示全部楼层

lcd应该很容易吧,都静态了,而且可以显示符号,

gjg191 发表于 2007-11-22 17:18 | 显示全部楼层

dd

x10 x100 做成死的不用管 用0乘就可以了
 楼主| ayb_ice 发表于 2007-11-23 08:18 | 显示全部楼层

大家还没有清楚我的意思

我是说这样的数据,怎样才能快速的显示出来,各位试想一下,这个数据的位数也不固定,小数点也不固定,显示的算法有点**。。。
gjg191 发表于 2007-11-23 09:12 | 显示全部楼层

dd

lz还不知道你怎么显示呢
如果整数是6位就x100
是5位呢难道就取4位x10阿
这里有误差阿 6位最大就可能有99误差
5位就是9了
呵呵
 楼主| ayb_ice 发表于 2007-11-23 10:28 | 显示全部楼层

我当然知道怎样显示

我的意思是
如果先判断值再在什么范围,再分离显示,这样会造成要花很多时间,因为这个数据的范围也很大,比如
if(xxx > 99999.999){
    /*显示最高的4位+X10或X100*/
}else if (xxx > 9999.999){
    /*显示最高的4位+X10或X100*/
}else if (xxx > 999.999){
    /*显示最高的4位+X10或X100*/
}....
这样的算法肯定是要花很多时间,效率太低,尤其是最后的条件成立时更是如此。
不知有没有更好的算法。。。
gjg191 发表于 2007-11-23 10:44 | 显示全部楼层

dd

觉得用除法判断有几个整数位比较简单
农民讲习所 发表于 2007-11-23 11:18 | 显示全部楼层

即使是一位LCD,也可以显示

 楼主| ayb_ice 发表于 2007-11-23 11:33 | 显示全部楼层

我知道肯定可以显示,也会显示

我是要高效的算法
农民讲习所 发表于 2007-11-23 11:36 | 显示全部楼层

没有高效的,只有现成的

著名的sprintf函数
gyt 发表于 2007-11-23 11:47 | 显示全部楼层

其实楼主在9楼的算法的效率并不低

人工智能中很多算法的效率比这低多了,照样用得挺好。

现在单片机也越来越快。试试9楼的算法,我觉得不会很慢的。
 楼主| ayb_ice 发表于 2007-11-23 15:39 | 显示全部楼层

sprintf函数太不适合了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

15494

帖子

34

粉丝
快速回复 在线客服 返回列表 返回顶部