赞
踩
大家要是初学,可以去看西风那里的系统课程,非常全面,有利于形成你自己的代码风格。
笔者发文章只是分享性的,有需要者才拿去用其中的一个小片段。
代码在这:
一、这个是首写自主完成的,bug应该也是没有的,然后注释比较多,是优化前的版本
链接:https://pan.baidu.com/s/1IFWSZ8gDggN4YAuIGGIq2Q?pwd=1234
提取码:1234
二、第一次默写,里面bug笔者是没发现有的,功能都实现了应该,因为第一次默写,所以有优化和新bug的修复
链接:https://pan.baidu.com/s/1RtNhYbRDkt2QBoK-v5z5pg?pwd=1234
提取码:1234
三、第二次默写,边写文章边写的,代码注释很少,足够简洁。
链接:https://pan.baidu.com/s/1Gtoc8wBm_072GaaUoWIzcg?pwd=1234
提取码:1234
这次文章里面就不以完成顺序来写了,这次新收获了很多知识,主要是以这个顺序进行分享。
电脑还是能识别出-90比0小的。
直接使用差值法就不需要在定时器中加加time_6s。
在main.c最下面写。
- float rd_distance(void)
- {
- //注释在之前的超声波模块文章里面讲得比较清楚了
- float distance_val=0.0;
- uc num=10;
- TX=0;
- TL0 = 0xF4;
- TH0 = 0xFF;
-
- TR0=1;
- while(num--)
- {
- while(TF0==0);
- TX=~TX;
- TF0=0;
- }
- TR0=0;
- TL0 = 0;
- TH0 = 0;
-
- TR0=1;
- while((RX==1)&&(TF0==0));
- TR0=0;
-
- if(TF0==1)
- {
- TF0=0;
- distance_val=255.0;
- }
- else
- distance_val=(((TH0<<8|TL0)*(tran_vate/20000.0))+cail_val);
- //除20000刚好是将单位换算成cm/us 切记左边是float类型,一定要将20000写成20000.0进行浮点数运算
- return distance_val;
- }
然后有个小建议就是将读取操作放在显示旁边,这样比较灵敏。
最好是封装起来,简洁方便。
底层模板函数在之前文章三大模板之中。
至此,国赛第十四届的代码也完成了,由于是自主完成,所以现象可能跟标准不太一样,但是要有的功能都是实现的了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。