找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2367|回复: 2
打印 上一主题 下一主题
收起左侧

关于超声波测距显示个位数的问题

[复制链接]
跳转到指定楼层
楼主
改来改去算法  第三位都只显示0  
unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'};

time=TH0*256+TL0;

S=(time*1.56672)/100;   

                 disbuff[0]=S*10%1000/100;
                 disbuff[1]=S*10%1000%100/10;
                 disbuff[2]=S*10%1000%100%10;
                           OLED_ShowChar(60, 2, ASCII[disbuff[0]]);
                           OLED_ShowChar(72, 2, ASCII[disbuff[1]]);
                           OLED_ShowChar(84, 2, ASCII[disbuff[2]]);
                        OLED_ShowChar(108, 2, ASCII[12]);        //显示M
                           OLED_ShowChar(120, 2, ASCII[12]);        //显示M




想请问下是什么原因?算法有错误吗?

QQ图片20180101022745.jpg (2.59 MB, 下载次数: 51)

QQ图片20180101022745.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2018-1-1 09:23 | 只看该作者
你清楚time的单位吗?只有知道了这个,才能知道你的算法对不对。
time的单位是us=10^-6s。
所以,我的换算是:S=(long)(time*0.17);//算出来是mm
你再想想。
回复

使用道具 举报

板凳
ID:250287 发表于 2018-1-1 20:21 | 只看该作者
本帖最后由 15796245 于 2018-1-2 00:28 编辑
HC6800-ES-V2.0 发表于 2018-1-1 09:23
你清楚time的单位吗?只有知道了这个,才能知道你的算法对不对。
time的单位是us=10^-6s。
所以,我的换 ...

谢谢大神!!有点思路了!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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