體感音響的軟件部分
發(fā)布時(shí)間:2013/11/14 20:12:05 訪問次數(shù):843
整個(gè)軟件由10個(gè)文件夾、29個(gè)C源代碼文件組成,如圖9所示。不過不用害怕,B3B-PH-K-S(LF)有很多都是操作系統(tǒng)代碼,沒必要理解每一行程序,只需要知道重要函數(shù)的用法即可。真正需要自己寫的代碼,其實(shí)只有iCode文件夾中7個(gè)與硬件相關(guān)的C語言驅(qū)動(dòng)程序以及APP文件夾中名為app.c的應(yīng)用程序。其他的代碼很少需要修政甚至不用修改。
重要部分在app.c文件中,此文件有啟動(dòng)操作系統(tǒng)的man函數(shù),各個(gè)任務(wù)的建立及運(yùn)行函數(shù),如圖10所示。在我們自己編寫的所有代碼中,有5個(gè)文件是操作芯片的外部設(shè)備的:VoiceVolume.c控制數(shù)字音量電位器,Capture.c控制雷達(dá)模塊,Led.c控制距離指示LED,pwm.c利用脈寬調(diào)制控制LED亮度、啟動(dòng)電源及音量控制開關(guān)。另外還有sys.c和timerc,這兩個(gè)文件主要是對芯片內(nèi)部的配置,比如配置中斷向量表、定時(shí)器等。在實(shí)際調(diào)用這些代碼時(shí),通常會建立與.c文件同名的.h文件.h文件包含函數(shù)的聲明、全局變量的聲明。在調(diào)用的時(shí)候,也是用#include命令包含.h文件的。
剛是基于任務(wù)的,每個(gè)任務(wù)都有唯一的優(yōu)先級。優(yōu)先級不但代表了這個(gè)任務(wù)優(yōu)先運(yùn)行的程度,還是任務(wù)的標(biāo)識。在u C/OS-II中,優(yōu)先級的數(shù)值越小,其優(yōu)先程度越大。
每個(gè)任務(wù)都必須有一個(gè)死循環(huán),在德環(huán)的末尾會有一個(gè)延時(shí)函數(shù)。當(dāng)一個(gè)任務(wù)進(jìn)入延時(shí)函數(shù)后,此任務(wù)便由運(yùn)行態(tài)轉(zhuǎn)為掛起,從而讓優(yōu)先級次低于它的任務(wù)執(zhí)行。雖然從微觀角度看,這些程序仍然是順序執(zhí)行的,但由于每一任務(wù)的用戶代碼執(zhí)行得非常快,因此看起來像是同時(shí)運(yùn)行。
p_arg為任務(wù)函數(shù)的參數(shù),如果不使用,編譯器會發(fā)出警告。因?yàn)槲覀冇貌坏剿,又為避免難看的(但不影響程序正常運(yùn)行)警告所以會加上“p_arg= p_arg}”。
任務(wù)執(zhí)行時(shí),有時(shí)需要進(jìn)行任務(wù)間通信。支持信號量、郵箱和消息隊(duì)列。在這里,我們要將AppRader任務(wù)計(jì)算的距離值傳給LED指示任務(wù)AppLedlndicate、亮度調(diào)節(jié)任務(wù)AppPWM以及音量控制任務(wù)AppVoiceControl,使用郵箱來傳遞。我們用OSMboxPend函數(shù)阻塞式讀取數(shù)據(jù),也就是說,只要沒有收到數(shù)據(jù),此函數(shù)所在的任務(wù)就一直處于掛起狀態(tài)。
整個(gè)軟件由10個(gè)文件夾、29個(gè)C源代碼文件組成,如圖9所示。不過不用害怕,B3B-PH-K-S(LF)有很多都是操作系統(tǒng)代碼,沒必要理解每一行程序,只需要知道重要函數(shù)的用法即可。真正需要自己寫的代碼,其實(shí)只有iCode文件夾中7個(gè)與硬件相關(guān)的C語言驅(qū)動(dòng)程序以及APP文件夾中名為app.c的應(yīng)用程序。其他的代碼很少需要修政甚至不用修改。
重要部分在app.c文件中,此文件有啟動(dòng)操作系統(tǒng)的man函數(shù),各個(gè)任務(wù)的建立及運(yùn)行函數(shù),如圖10所示。在我們自己編寫的所有代碼中,有5個(gè)文件是操作芯片的外部設(shè)備的:VoiceVolume.c控制數(shù)字音量電位器,Capture.c控制雷達(dá)模塊,Led.c控制距離指示LED,pwm.c利用脈寬調(diào)制控制LED亮度、啟動(dòng)電源及音量控制開關(guān)。另外還有sys.c和timerc,這兩個(gè)文件主要是對芯片內(nèi)部的配置,比如配置中斷向量表、定時(shí)器等。在實(shí)際調(diào)用這些代碼時(shí),通常會建立與.c文件同名的.h文件.h文件包含函數(shù)的聲明、全局變量的聲明。在調(diào)用的時(shí)候,也是用#include命令包含.h文件的。
剛是基于任務(wù)的,每個(gè)任務(wù)都有唯一的優(yōu)先級。優(yōu)先級不但代表了這個(gè)任務(wù)優(yōu)先運(yùn)行的程度,還是任務(wù)的標(biāo)識。在u C/OS-II中,優(yōu)先級的數(shù)值越小,其優(yōu)先程度越大。
每個(gè)任務(wù)都必須有一個(gè)死循環(huán),在德環(huán)的末尾會有一個(gè)延時(shí)函數(shù)。當(dāng)一個(gè)任務(wù)進(jìn)入延時(shí)函數(shù)后,此任務(wù)便由運(yùn)行態(tài)轉(zhuǎn)為掛起,從而讓優(yōu)先級次低于它的任務(wù)執(zhí)行。雖然從微觀角度看,這些程序仍然是順序執(zhí)行的,但由于每一任務(wù)的用戶代碼執(zhí)行得非?欤虼丝雌饋硐袷峭瑫r(shí)運(yùn)行。
p_arg為任務(wù)函數(shù)的參數(shù),如果不使用,編譯器會發(fā)出警告。因?yàn)槲覀冇貌坏剿,又為避免難看的(但不影響程序正常運(yùn)行)警告所以會加上“p_arg= p_arg}”。
任務(wù)執(zhí)行時(shí),有時(shí)需要進(jìn)行任務(wù)間通信。支持信號量、郵箱和消息隊(duì)列。在這里,我們要將AppRader任務(wù)計(jì)算的距離值傳給LED指示任務(wù)AppLedlndicate、亮度調(diào)節(jié)任務(wù)AppPWM以及音量控制任務(wù)AppVoiceControl,使用郵箱來傳遞。我們用OSMboxPend函數(shù)阻塞式讀取數(shù)據(jù),也就是說,只要沒有收到數(shù)據(jù),此函數(shù)所在的任務(wù)就一直處于掛起狀態(tài)。
上一篇:放大器與數(shù)字音量電位器
上一篇:超聲波傳感器
熱門點(diǎn)擊
- 積分器的輸出波形隨脈沖寬度的變化
- 集成電路實(shí)驗(yàn)板(面包板)插接技巧
- RC積分器對重復(fù)脈沖的響應(yīng)
- 任意電平比較器
- 八進(jìn)制數(shù)與十六進(jìn)制數(shù)
- 反射式紅外測速儀的電路
- 導(dǎo)電電子與空穴
- 不同的磁極相吸,而相同的磁極相斥
- 電路的反饋極性及類型
- 集成ADC
推薦技術(shù)資料
- 中國傳媒大學(xué)傳媒博物館開
- 傳媒博物館開館儀式隆童舉行。教育都i國家廣電總局等部門... [詳細(xì)]
- F28P65x C2000 實(shí)時(shí)微控制器
- ARM Cortex-M33 內(nèi)核̴
- 氮化鎵二極管和晶體管̴
- Richtek RT5716設(shè)
- 新一代旗艦芯片麒麟9020應(yīng)用
- 新品WTOLC-4X50H32
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究