osal實驗4lcd背光控制hal層api_第1頁
osal實驗4lcd背光控制hal層api_第2頁
osal實驗4lcd背光控制hal層api_第3頁
osal實驗4lcd背光控制hal層api_第4頁
osal實驗4lcd背光控制hal層api_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、OSAL 實驗四通過 LED 接口控制 LCD 背光,hal 層 api 控制2014/3/28OSAL 是協(xié)議棧的軀干,可以理解為一個超級簡單的操作系統(tǒng)http目錄前言2必要條件2原理圖2編程參考2準(zhǔn)備工作4源碼分析41http1 前言上一個實驗中,使用了 hal 層提供的 API 函數(shù)來控制 LED 的亮滅與閃爍,那么這些API 函數(shù)是怎么實現(xiàn)的呢,本章實驗,帶領(lǐng)各位研究 LED 的驅(qū)動函數(shù),然后添加一個LED 驅(qū)動:LCD 的背光通過 LED 控制。通過 hal 層的 API 接口來控制。注:本實驗一定要使用 LCD12864 顯示屏才能用。OLED 沒有背光控制。2 必要條件A 硬件1

2、、 SmartRF 系列開發(fā)板,CC2540 或者 CC2541 2、 CC-Debugger 仿真器B1、 IAR for 8051 開發(fā)環(huán)境,版本:8.102、 Flash Programmer 固件燒寫3、 Source Insight3.5 代碼閱讀。3 原理圖LCD 背光由 P0.0 控制,相同。時電亮背光,低電平時關(guān)閉背光。這和 LED觸發(fā)條件4 編程參考OSAL 實驗中,需要參考的有兩份文檔1、 HALAPI.pdf(位于協(xié)議棧安裝目錄DriverTexas2http),對于英語比較好一點的讀者可以直接閱讀InstrumentsZStack-CC2530-2.5.1a這份英文資料

3、,這個是由 TI 提供的。還有一份中文文檔在開發(fā)板資料0 開始:入手開發(fā)套件協(xié)議棧中API(中).pdf提供資料的目錄下 CC2530中文件中文翻譯HAL 驅(qū)動2、 OSAL API.pdf(位于協(xié)議棧安裝目錄 Texas InstrumentsZStack-CC2530-2.5.1as),同樣提供資料的目錄下 CC2530 開發(fā)板資料0 開始:入手開發(fā)套件協(xié)議棧中中文件中文翻譯OSAL API(中).pdf 也是一份中文文檔針對 hal 層編程,因此需要閱讀 ti 提供的 hal 層 api 函數(shù)參考手冊。本節(jié),3http5 準(zhǔn)備工作這時第一次分析比較龐大的源碼,因此分析工具的選擇顯的十分重

4、要,這里使用 Source Insight3.5 來閱讀分析源碼,這一節(jié),使用 SourceInsight3.5 來創(chuàng)建一個代碼閱讀工程。SourceInsight3.5 工具在 CC2530 開發(fā)板資料0 開始:入手開發(fā)套件0、工具文件夾內(nèi)。安裝在這里省略,不做詳細說明。5.1 新建一個 Source Insight 工程打開 SI,選擇 Project-New Project.輸入想要創(chuàng)建的 SI 工程名稱,隨便填寫一個就好;在保存路徑中設(shè)定為你想要保存的位置,然后單擊 OK。然后會出現(xiàn)尋則要包含的源碼框,單擊 Browse.定位到的【實驗 1 OSAL 架構(gòu)預(yù)覽】4http里的【OSAL

5、 實驗】文件夾單擊確認,然后在單擊 OK5http源碼路徑設(shè)置之后,然后需要選擇包含哪些源碼,一般是包含所有源碼,所以選擇 Add Tree,這時就會跳出一個框,提示當(dāng)前找到了多少個源文件,選擇 OK,然后 Close。6http7http這樣,一個 Source Insight 工程就創(chuàng)建 ok 了Project來打開剛才創(chuàng)建的工程,選擇 Project-Open8http選擇剛才創(chuàng)建的工程名:SimpleOsal,然后單擊 OK,就打開了這個工程。工程打開后,可以通過右邊的資源管理器,找到要閱讀的源碼即可。9http6 源碼分析在 OSAL 中已經(jīng)做好的硬件抽象層 hal,已經(jīng)包括了 LE

6、D1LED3 的控制,所以幾個試驗中,可以直接調(diào)用 hal 層的 API 函數(shù),肯定會有很多人問 hal 層的代碼是如何封裝的,如果板子上改變了 LED 的控制端口,那該如何操作呢,這一節(jié),層代碼。來教大家如何修改 hal不管做什么在修改之前必須要清楚的研究他的本質(zhì),才能不盲目,成功率高。打開實驗?zāi)夸浵碌?OSAL_OS 目錄下的 TestOSAL.eww IAR 工程項目。在 IAR 的左邊的 WORKSPACE 窗口中,點擊 hal 文件夾的前面的+,即可展開 OSAL 中 HAL 硬件抽象層中所有的文件。見下圖。10http前幾個LED 試驗中使用的API 函數(shù)均由該文件提供。打開該文件

7、,里面幾個重要的函數(shù),這里僅僅來分析本實驗的目的,使用 hal 層的 led api 函數(shù)來控制 LCD 背光,所以要找到led 底層相關(guān)的代碼,然后修改他。下圖是在hal_led.c 中找到的與硬件相關(guān)的函數(shù)。由于 TI開發(fā)板使用的四個 LED(LED4 沒用用到),而的開發(fā)板上使用的是三個可編程的 LED,因此這個 LED4 就可以用來修改為控制LCD 背光。11http先看看普通的LED1 是控制的。通過文件里通過宏定義完成。,發(fā)現(xiàn) LED1LED4 的控制,是在 hal_board_cfg.h 頭12http均是通過#define HAL_TURN_ON_LED1()宏定義完成,宏定義

8、的后面又是宏定義,因此st( LED1_SBIT = LED1_POLARITY (1); )這樣的得繼續(xù)尋找。該宏定義的作用相當(dāng)于一個大括號,將其中 x 代表的所有代碼包括在一起, LINE 是 iar 的宏定義,表示當(dāng)前的行號,應(yīng)為行號不可能等于-1,因此這個 do while 只會執(zhí)行一次,目的就是包含 x 表示的所有代碼。這樣通過分解,HAL_TURN_ON_LED1 就是 P1_0=!1,一個!為邏輯非,兩個負負得正,直接是 P1_0=1;這樣就通過么簡單。,將 LED1 點亮了。HAL_TURN_OFF_LED1 分解后就是 P1_0=0,就這這里需要將 LED4 修改為由 P0_

9、0 控制(詳情見 SmartRF 原理圖)。因此需要將 LED4 的宏定義修改與 LED1LED3 類似的宏定義,代碼中 LED4 直接通過宏定義指向 LED1 了,需要修改他。13http這樣就完成了控制部分的代碼修改,但是還有一個地方要修改,就是用戶任務(wù)初始化函數(shù)。要在任務(wù)函數(shù)中處理 LED_CHANGE 事件中,添加對LED4 的閃爍控制。見下圖修改過后的代碼。App_Init 函數(shù)保持與實驗 3 一樣。通過閱讀代碼發(fā)現(xiàn),OSAL 中使用了大量地預(yù)處理指令,除了 LED 還有 UART、ADC、KEY 等等。值得注意的是,在每個硬件初始化函數(shù)之前都有一個宏定義,例如 led 的,HAL_LED,只有當(dāng)定義了 HAL_LED 等于 TRUE 的時候,編譯器才將與 LED 相關(guān)的代碼編譯進 OSAL 系統(tǒng)中,否則就不會被編譯。通過使用預(yù)處理指令便可實現(xiàn)系統(tǒng)裁剪。源代碼的分析就到這里,下面源代碼進行編譯,然后將程序燒錄到開發(fā)板時看看現(xiàn)像是不是上述分析的那樣。通過 CC-Debug 將程序燒錄到中,點擊全速運行?;蛴?Flash Program 將 HEX 文件到中。具體的操作請查盾基礎(chǔ)篇的文檔。下面是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論