K60之超声波测速方案

技术不高,只为分享。

有帖子说,因为看见“周期最好60ms以上,所以就不太想用超声波了”,确实,在没看到王童鞋的“建议重新学习计数器/定时器”时,我还没有什么灵感和想法。
以前没灵感是因为野火的三天学会K60只给出了pit_init周期中断函数,如果用周期中断对 超声波的高电平测时间显然不可能,偶然发现了PIT模块中的Timer Load Value Register (PIT_LDVALn)、Current Timer Value Register (PIT_CVALn)这两个寄存器。
PIT模块用bus_clock作频率源,从PIT_LDVALn递减到0,产生中断又装载PIT_LDVALn值。那么为测量echo端的高电平时间,只要知道如下图所示的第二个时间节点时的PIT_CVALn值就行。根据公式(PIT_LDVALn - PIT_CVALn)*总线时钟周期*声速/2。

实现过程如下:
1.trig脚  简单随意的来个10微秒以上的脉冲;
2.echo脚 设成跳变沿触发中断,在第1步之后,开启引脚中断;
在第一个上升沿中断开启 PITn中断,中断周期可以设定为60毫秒(这个值PIT_LDVALn 自己设定);
在第二个下降沿中断读取PIT_CVALn值,然后关闭PITn定时器和IO口中断,结束此次测量。
3.还有注意PITn产生中断就说明没有接收到返回来的波,(即前面没障碍或很远),也结束此次测量。

虽然还没用砖头测试,但是测墙面还是很准的,1.5m还是可以保证的(若以直道4m/s的速度,假设完成一次测距要100ms,那么小车走过的距离是40cm,因此1.5m应该可以了)。

通过这次我发现仅用提供的库可能还是不够的,得看看K60内部强大的资源了。

永不止步步 发表于11-14 09:33 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:345791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号