超声波的移动机器人导航的设计原理
利用数字示波器精确设计一个软件计时函数usdelay (),具体实现如下。
则usdelay(1)既为10us,该函数用于在给出激发高脉冲后延续10us 然后关脉冲。
还要设计一个msdelay()用于控制整个测距周期的时间值。
msdelay(1000)在主函数数中用于延迟1s,这样定时器可以完全有足够的回波检测时间同时也不会对其它三路超声波信号造成干扰。
如下所示。
3.3 超声波回波检测的实现
回波检测计算脉宽的时间需要用到定时器和外部中断,外部中断接超声波的echo 并设置为下降沿触发。定时器的初始化如下。
rTCFG0=0x9595; //预分频值为95
rTCFG1=0x00000; //分割值1/2
rTCNTB0=10000; /
根据T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定时器的周期为60ms 在这个时间段里足以计算回波时间。
外部中断1 初始化如下
rGPFCON=0xaa; //GPF1 设置为EINT1
rINTMOD=0x0; //设置为普通中断
rGPFUP=0xf; //禁止GPF0 上拉电阻
pISR_EINT1=(unsigned)Eint1Handler; //建立中断向量
EnableIrq(BIT_EINT1); //使能中断
rEXTINT0 =0x492; // EINT1 下降沿触发
根据T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定时器的周期为60ms 在这个时间段里足以计算回波时间。
评论