超声波传感器发射超声波,关闭定时器,将计数器清零,随后计时开始,在接收到从障碍物返回来的超声波时计数停止,读取并计算小车与障碍物间的距离。若相距超过20cm,则小车继续前进,否则小车后退转向。超声波测距子程序流程如图23-9所示。
提取定时器的数值,然后通过计算可得到距离的Conut()函数代码如下:(S表示测出的距离,Uint型变量,如返回124,则表示为1.24m,当距离超过5m时,返回S=666,则表示超出量程。)
图23-9 超声波测距子程序流程图