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

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

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

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

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

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

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

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

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

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

#include

unsigned int k=0;

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

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

void HC_SR04Init();

void HC_SR04Start();

void TimeGetInit();

void main()

{

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

TimeGetInit(); //初始化計(jì)數(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;

}

/*初始化捕獲模式,獲取時(shí)間*/

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時(shí)清0

LPM0_EXIT; //退出低功耗模式

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

_EINT(); //開中斷

}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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