超聲波的移動(dòng)機器人導航的設計原理
利用數字示波器精確設計一個(gè)軟件計時(shí)函數usdelay (),具體實(shí)現如下。
則usdelay(1)既為10us,該函數用于在給出激發(fā)高脈沖后延續10us 然后關(guān)脈沖。
還要設計一個(gè)msdelay()用于控制整個(gè)測距周期的時(shí)間值。
msdelay(1000)在主函數數中用于延遲1s,這樣定時(shí)器可以完全有足夠的回波檢測時(shí)間同時(shí)也不會(huì )對其它三路超聲波信號造成干擾。
如下所示。
3.3 超聲波回波檢測的實(shí)現
回波檢測計算脈寬的時(shí)間需要用到定時(shí)器和外部中斷,外部中斷接超聲波的echo 并設置為下降沿觸發(fā)。定時(shí)器的初始化如下。
rTCFG0=0x9595; //預分頻值為95
rTCFG1=0x00000; //分割值1/2
rTCNTB0=10000; /
根據T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時(shí)器的周期為60ms 在這個(gè)時(shí)間段里足以計算回波時(shí)間。
外部中斷1 初始化如下
rGPFCON=0xaa; //GPF1 設置為EINT1
rINTMOD=0x0; //設置為普通中斷
rGPFUP=0xf; //禁止GPF0 上拉電阻
pISR_EINT1=(unsigned)Eint1Handler; //建立中斷向量
EnableIrq(BIT_EINT1); //使能中斷
rEXTINT0 =0x492; // EINT1 下降沿觸發(fā)
根據T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時(shí)器的周期為60ms 在這個(gè)時(shí)間段里足以計算回波時(shí)間。
評論