单片机/MCU论坛
直播中

王桂兰

7年用户 1162经验值
私信 关注
[问答]

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

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分频有什么关系吗?

回帖(1)

王蓓

2023-10-8 15:19:46
你用的是定时器是12分频的,是不是就是你所用的计数频率是参考频率的1/12,那么再做换算的时候,这个数值再乘过去,才能和实际值匹配。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分