• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

为什么单片机超声波测距程序中要乘以12?

edc0300acea9bd69 2020-06-09 浏览量:639
if(succeed_flag==1)
             {         
                   distance_data=outcomeH;                //测量结果的高8位
           distance_data<<=8;                   //放入16位的高8位
                     distance_data=distance_data|outcomeL;//与低8位合并成为16位结果数据
            distance_data*=12;                  //因为定时器默认为12分频
           distance_data/=58;                   //微秒的单位除以58等于厘米
         }                                      //为什么除以58等于厘米,  Y米=(X秒*344)/2
                                                       // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58 
为什么 distance_data要乘以12,这跟定时器默认为12分频有什么关系吗?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 你用的是定时器是12分频的,是不是就是你所用的计数频率是参考频率的1/12,那么再做换算的时候,这个数值再乘过去,才能和实际值匹配。
    • 发布于 2020-06-10
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 定时器是12分频的啊,再计算长度时,就要把分的12倍再乘回来的
    • 发布于2020-06-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要看你程序执行一次测量时的周期,因为这个条件的触发可能与定时器有关,定时器进行了分频的
    • 发布于2020-06-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的这个是分频12倍后的,实际的时间要再乘以 12的
    • 发布于2020-06-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 注释里写的是很清楚 的了,是由于定时器进行了12分频的
    • 发布于2020-06-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个时间是分频后的,要计算实际的时间,就要再把分频的倍数乘回来
    • 发布于2020-06-13
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

为什么单片机超声波测距程序中要乘以12?