![osal實驗4lcd背光控制hal層api_第1頁](http://file4.renrendoc.com/view/30dd79cb85e36d3ad4be4871cd2ca537/30dd79cb85e36d3ad4be4871cd2ca5371.gif)
![osal實驗4lcd背光控制hal層api_第2頁](http://file4.renrendoc.com/view/30dd79cb85e36d3ad4be4871cd2ca537/30dd79cb85e36d3ad4be4871cd2ca5372.gif)
![osal實驗4lcd背光控制hal層api_第3頁](http://file4.renrendoc.com/view/30dd79cb85e36d3ad4be4871cd2ca537/30dd79cb85e36d3ad4be4871cd2ca5373.gif)
![osal實驗4lcd背光控制hal層api_第4頁](http://file4.renrendoc.com/view/30dd79cb85e36d3ad4be4871cd2ca537/30dd79cb85e36d3ad4be4871cd2ca5374.gif)
![osal實驗4lcd背光控制hal層api_第5頁](http://file4.renrendoc.com/view/30dd79cb85e36d3ad4be4871cd2ca537/30dd79cb85e36d3ad4be4871cd2ca5375.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、OSAL 實驗四通過 LED 接口控制 LCD 背光,hal 層 api 控制2014/3/28OSAL 是協(xié)議棧的軀干,可以理解為一個超級簡單的操作系統(tǒng)http目錄前言2必要條件2原理圖2編程參考2準備工作4源碼分析41http1 前言上一個實驗中,使用了 hal 層提供的 API 函數(shù)來控制 LED 的亮滅與閃爍,那么這些API 函數(shù)是怎么實現(xiàn)的呢,本章實驗,帶領各位研究 LED 的驅動函數(shù),然后添加一個LED 驅動: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 控制,相同。時電亮背光,低電平時關閉背光。這和 LED觸發(fā)條件4 編程參考OSAL 實驗中,需要參考的有兩份文檔1、 HALAPI.pdf(位于協(xié)議棧安裝目錄DriverTexas2http),對于英語比較好一點的讀者可以直接閱讀InstrumentsZStack-CC2530-2.5.1a這份英文資料
3、,這個是由 TI 提供的。還有一份中文文檔在開發(fā)板資料0 開始:入手開發(fā)套件協(xié)議棧中API(中).pdf提供資料的目錄下 CC2530中文件中文翻譯HAL 驅動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 準備工作這時第一次分析比較龐大的源碼,因此分析工具的選擇顯的十分重
4、要,這里使用 Source Insight3.5 來閱讀分析源碼,這一節(jié),使用 SourceInsight3.5 來創(chuàng)建一個代碼閱讀工程。SourceInsight3.5 工具在 CC2530 開發(fā)板資料0 開始:入手開發(fā)套件0、工具文件夾內。安裝在這里省略,不做詳細說明。5.1 新建一個 Source Insight 工程打開 SI,選擇 Project-New Project.輸入想要創(chuàng)建的 SI 工程名稱,隨便填寫一個就好;在保存路徑中設定為你想要保存的位置,然后單擊 OK。然后會出現(xiàn)尋則要包含的源碼框,單擊 Browse.定位到的【實驗 1 OSAL 架構預覽】4http里的【OSAL
5、 實驗】文件夾單擊確認,然后在單擊 OK5http源碼路徑設置之后,然后需要選擇包含哪些源碼,一般是包含所有源碼,所以選擇 Add Tree,這時就會跳出一個框,提示當前找到了多少個源文件,選擇 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 的控制,所以幾個試驗中,可以直接調用 hal 層的 API 函數(shù),肯定會有很多人問 hal 層的代碼是如何封裝的,如果板子上改變了 LED 的控制端口,那該如何操作呢,這一節(jié),層代碼。來教大家如何修改 hal不管做什么在修改之前必須要清楚的研究他的本質,才能不盲目,成功率高。打開實驗目錄下的 OSAL_OS 目錄下的 TestOSAL.eww IAR 工程項目。在 IAR 的左邊的 WORKSPACE 窗口中,點擊 hal 文件夾的前面的+,即可展開 OSAL 中 HAL 硬件抽象層中所有的文件。見下圖。10http前幾個LED 試驗中使用的API 函數(shù)均由該文件提供。打開該文件
7、,里面幾個重要的函數(shù),這里僅僅來分析本實驗的目的,使用 hal 層的 led api 函數(shù)來控制 LCD 背光,所以要找到led 底層相關的代碼,然后修改他。下圖是在hal_led.c 中找到的與硬件相關的函數(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ù)尋找。該宏定義的作用相當于一個大括號,將其中 x 代表的所有代碼包括在一起, LINE 是 iar 的宏定義,表示當前的行號,應為行號不可能等于-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這樣就完成了控制部分的代碼修改,但是還有一個地方要修改,就是用戶任務初始化函數(shù)。要在任務函數(shù)中處理 LED_CHANGE 事件中,添加對LED4 的閃爍控制。見下圖修改過后的代碼。App_Init 函數(shù)保持與實驗 3 一樣。通過閱讀代碼發(fā)現(xiàn),OSAL 中使用了大量地預處理指令,除了 LED 還有 UART、ADC、KEY 等等。值得注意的是,在每個硬件初始化函數(shù)之前都有一個宏定義,例如 led 的,HAL_LED,只有當定義了 HAL_LED 等于 TRUE 的時候,編譯器才將與 LED 相關的代碼編譯進 OSAL 系統(tǒng)中,否則就不會被編譯。通過使用預處理指令便可實現(xiàn)系統(tǒng)裁剪。源代碼的分析就到這里,下面源代碼進行編譯,然后將程序燒錄到開發(fā)板時看看現(xiàn)像是不是上述分析的那樣。通過 CC-Debug 將程序燒錄到中,點擊全速運行?;蛴?Flash Program 將 HEX 文件到中。具體的操作請查盾基礎篇的文檔。下面是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色物流貨物代理合同示范文本
- 福建省福州市平潭縣城關教研片2024-2025學年八年級(上)期末物理試卷(含解析)
- 遵義2025年貴州遵義市綏陽縣政務服務管理局選調3人筆試歷年參考題庫附帶答案詳解
- 貴州2025年貴州省科學技術廳所屬事業(yè)單位招聘7人筆試歷年參考題庫附帶答案詳解
- 漯河2024年河南漯河市第六人民醫(yī)院(漯河市心血管病醫(yī)院)招聘高層次人才筆試歷年參考題庫附帶答案詳解
- 江西江西贛江新區(qū)中小學招聘2025屆部屬公費師范畢業(yè)生9人筆試歷年參考題庫附帶答案詳解
- 曲靖云南曲靖陸良縣紅十字會招聘公益性崗位工作人員筆試歷年參考題庫附帶答案詳解
- 2025年中國大盆市場調查研究報告
- 懷化2024年湖南懷化市司法局所屬事業(yè)單位懷化市天橋公證處招聘2人筆試歷年參考題庫附帶答案詳解
- 廣州2025年廣東廣州市荔灣中心醫(yī)院招聘編制外工作人員19人(第一批)筆試歷年參考題庫附帶答案詳解
- 中央企業(yè)商業(yè)秘密安全保護技術指引2015版
- 四年級上冊音樂《楊柳青》課件PPT
- 人教版初中英語八年級下冊 單詞默寫表 漢譯英
- 蘇教版六年級數(shù)學下冊《解決問題的策略2》優(yōu)質教案
- 《靜脈治療護理技術操作規(guī)范》考核試題及答案(共140題)
- 英國文學8.2講解Sonnet18
- 人事測評理論與方法-課件
- 最新卷宗的整理、裝訂(全)課件
- 人教版部編道德與法治三年級下冊全冊全套課件
- 信訪事項受理、辦理、復查、復核、聽證程序課件
- 【北京】施工現(xiàn)場安全生產標準化管理圖集
評論
0/150
提交評論