當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]MSP430F5529之捕獲模式下的HCSR04超聲測距(粗略)

前段時間需要用MSP430F5529,因為是個菜鳥,很多都不會,遇到了很多問題,百度好多東西都是千篇一律的,好些東西都是Ctrl+c,Ctrl+v。而有很多老鳥,可能說不定也是菜鳥一個呢!!一副為了你好的樣子,你看手冊啊,手冊不會嗎?你用示波器打啊,示波器不會嗎?你什么單位啊,示波器都沒有嗎?所以才打算在把這個捕獲模式搞清楚后發(fā)一篇自己的心得吧.。發(fā)了半天牢騷,正文如下。

要用捕獲我們得搞清楚捕獲的原理是什么,捕獲的原理是通過計數(shù)器,記錄從使能開始到設(shè)定的沿的數(shù)值(也可以理解為時間)。在設(shè)定為捕獲模式下,使能過后,計數(shù)器TA0R就開始計數(shù)了,在單步調(diào)試過程中,可以通過觀察CCS里面的Registers各個寄存器的變化來深入的理解。

上面分別是CCS單步調(diào)試的時候的寄存器圖和MSP430F5529的引腳圖,根據(jù)引腳圖我們可以知道,關(guān)于定時器TA0.0相關(guān)的功能在P1.1引腳上,以此類推對應(yīng)起來。這次我用到的是P1.4引腳,也就是TA0.3,選擇了TA0.3那么,相對應(yīng)的捕獲到的時間的值,是在TA0CCTL3那里。

然后我們可以通過寫TA0CCTL3里面的寄存器,來選擇模式,關(guān)于什么模式下是什么作用,可以通過頭文件,看頭文件里面的注釋,也可以通過看上圖Register中Value一欄的值,如:CM下的00-CM_0功能是Capture mode 1(捕獲模式1)。

在單步調(diào)試的過程中,我們可以看到,計數(shù)器計數(shù)的過程中,TA0R每一個單步都會變,在捕獲到設(shè)定好的邊沿時,TA0R的值會賦給TA0CCR3,然后TA0R再接著計數(shù)。

單步調(diào)試的大概思路就是這樣的,我們接下來通過觀察Expressions里面的值,來看我們捕獲到的時間。

我這里沒有連超聲模塊,就沒有再次單步調(diào)試了,但是之前調(diào)試的過程是這樣的。按照這個思路來應(yīng)該沒有問題。

根據(jù)超聲模塊HC_SR04的時序圖可以知道:

超聲模塊內(nèi)部發(fā)出信號需要先10us的高電平,最后我們需要捕捉一個上升沿和下降沿就好了,就可以得出時間了。

#include

unsigned int k=0;

unsigned int LastCCR1; //上一次高電平持續(xù)的時間,和距離正相關(guān)

unsigned int dat[20]; //通過數(shù)組備份采集到的數(shù)據(jù)

void HC_SR04Init();

void HC_SR04Start();

void TimeGetInit();

void main()

{

HC_SR04Init(); //初始化超聲模塊HC_SR04

TimeGetInit(); //初始化計數(shù)捕獲引腳,模式等

_EINT();

while(1)

{

HC_SR04Start();

LPM0;

}

}

/*初始化HC_SR04Init()模塊*/

void HC_SR04Init()

{

P1DIR|=BIT2;

}

/*開始超聲發(fā)送*/

void HC_SR04Start()

{

P1OUT|=BIT2;

_delay_cycles(12); //至少持續(xù)10us的高電平

P1OUT&=~BIT2;

}

/*初始化捕獲模式,獲取時間*/

void TimeGetInit()

{

P1DIR&=~BIT4;

P1SEL|=BIT4;

TA0CTL=TASSEL_2+ID_0+MC_2+TACLR;

TA0CCTL3=CM_1+SCS+CAP+CCIE+CCIS_0;

}

#pragma vector=TIMER0_A1_VECTOR

__interrupt void TIMER0_A1_ISR(void)

{

_DINT(); //關(guān)中斷

static unsigned char times=1;

static unsigned char i=0;

unsigned char j;

unsigned int t;

if(times==1)

{

LastCCR1=TA0CCR3; //記錄下上次CCR3的值

TA0CCTL3&=~CM_1; //清上升沿捕獲

TA0CCTL3|=CM_2; //改為下降沿捕獲

times++;

}

if(times==0)

{

if(i<20) //把采集到的20次的值都放到數(shù)組中

{

dat[i]=TA0CCR3-LastCCR1;;

i++;

}

if(i>=20) //為了防止誤差,排序把采集到的兩頭兩尾的值去掉,取中間的平均值

{

for(i=0;i<20;i++)

{

for(j=0;j<20-i;j++)

{

if(dat[j]>dat[j+1])

{

t=dat[j];

dat[j]=dat[j+1];

dat[j+1]=t;

}

}

}

t=0;

for(i=7;i<12;i++)

{

t=t+dat[i];

}

k=t/5;

i=0;

}

TA0CCTL3&=~CM_2; //清除下降沿觸發(fā)

TA0CCTL3|=CM_1; //變?yōu)樯仙赜|發(fā)

times++; //改變times的值

}

times&=0x01; //times>1時清0

LPM0_EXIT; //退出低功耗模式

TA0CCTL3&=~CCIFG; //清除中斷響應(yīng)標(biāo)志

_EINT(); //開中斷

}

這個沒有具體的算時間,但是我根據(jù)距離S=V*(t/2)大概算了下,這里時間粗略為:t=k*1us。像那么回事,這里只是講下MSP430F5529用捕獲的方法,如果要精確的話,還需要校準(zhǔn)時鐘頻率等等。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉