關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 超聲波的移動(dòng)機(jī)器人導(dǎo)航的設(shè)計(jì)原理

超聲波的移動(dòng)機(jī)器人導(dǎo)航的設(shè)計(jì)原理

作者: 時(shí)間:2012-05-14 來源:網(wǎng)絡(luò) 收藏

利用數(shù)字示波器精確一個(gè)軟件計(jì)時(shí)函數(shù)usdelay (),具體實(shí)現(xiàn)如下。

則usdelay(1)既為10us,該函數(shù)用于在給出激發(fā)高脈沖后延續(xù)10us 然后關(guān)脈沖。

還要一個(gè)msdelay()用于控制整個(gè)測(cè)距周期的時(shí)間值。

msdelay(1000)在主函數(shù)數(shù)中用于延遲1s,這樣定時(shí)器可以完全有足夠的回波檢測(cè)時(shí)間同時(shí)也不會(huì)對(duì)其它三路信號(hào)造成干擾。

如下所示。

3.3 回波檢測(cè)的實(shí)現(xiàn)

回波檢測(cè)計(jì)算脈寬的時(shí)間需要用到定時(shí)器和外部中斷,外部中斷接的echo 并設(shè)置為下降沿觸發(fā)。定時(shí)器的初始化如下。

rTCFG0=0x9595; //預(yù)分頻值為95

rTCFG1=0x00000; //分割值1/2

rTCNTB0=10000; /

根據(jù)T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時(shí)器的周期為60ms 在這個(gè)時(shí)間段里足以計(jì)算回波時(shí)間。

外部中斷1 初始化如下

rGPFCON=0xaa; //GPF1 設(shè)置為EINT1

rINTMOD=0x0; //設(shè)置為普通中斷

rGPFUP=0xf; //禁止GPF0 上拉電阻

pISR_EINT1=(unsigned)Eint1Handler; //建立中斷向量

EnableIrq(BIT_EINT1); //使能中斷

rEXTINT0 =0x492; // EINT1 下降沿觸發(fā)

根據(jù)T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時(shí)器的周期為60ms 在這個(gè)時(shí)間段里足以計(jì)算回波時(shí)間。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉