09嵌入式實時操作系統(tǒng)FreeRTOS事件標志組_第1頁
09嵌入式實時操作系統(tǒng)FreeRTOS事件標志組_第2頁
09嵌入式實時操作系統(tǒng)FreeRTOS事件標志組_第3頁
09嵌入式實時操作系統(tǒng)FreeRTOS事件標志組_第4頁
09嵌入式實時操作系統(tǒng)FreeRTOS事件標志組_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《嵌入式實時操作系統(tǒng)FreeRTOS原理及應用——基于STM32微控制器》嵌入式實時操作系統(tǒng)FreeRTOS原理及應用張超主編STM32Cortex-M4通用開發(fā)板嵌入式實時操作系統(tǒng)FreeRTOS原理及應用事件標志組用事件標志組進行任務同步FreeRTOS事件標志組主要內容:一、事件標志組FreeRTOS事件標志組事件標志組用一個二進制位來表示一個事件,當這個二進制位為1時,表明發(fā)生了對應事件,為0時沒有發(fā)生,這樣,多個二進制位組合在一起就可以用來表示事件標志組。在FreeRTOS中,事件標志組中的所有事件位使用一個EventBits_t的數(shù)據(jù)類型來存儲。這個數(shù)據(jù)類型與處理器的字長有關,在STM32微控制器上,這個數(shù)據(jù)類型為32位。FreeRTOS事件標志組只使用低24位用來存儲事件位,故事件標志組最多只能存儲24個事件。創(chuàng)建事件標志組事件標志組用函數(shù)xEventGroupCreate()來創(chuàng)建事件標志組,函數(shù)的原型為:EventGroupHandle_txEventGroupCreate(void)設置事件位事件標志組設置事件位涉及二種操作,置1和清0。1、xEventGroupClearBits()事件標志位清0函數(shù),函數(shù)原型如下:EventBits_txEventGroupClearBits(EventGroupHandle_txEventGroup, constEventBits_tuxBitsToClear);設置事件位事件標志組2、xEventGroupClearBitsFromISR()中斷服務函數(shù)中用于事件標志位清0函數(shù),函數(shù)原型如下:BaseType_txEventGroupClearBitsFromISR(EventGroupHandle_txEventGroup,constEventBits_tuxBitsToClear);設置事件位事件標志組3、xEventGroupSetBits()事件標志位置1函數(shù),函數(shù)原型如下:EventBits_txEventGroupSetBits(EventGroupHandle_txEventGroup, constEventBits_tuxBitsToSet);設置事件位事件標志組4、xEventGroupSetBitsFromISR()中斷服務函數(shù)中用于事件標志位置1函數(shù),函數(shù)原型如下:BaseType_txEventGroupSetBitsFromISR(EventGroupHandle_txEventGroup,constEventBits_tuxBitsToSet,BaseType_t*pxHigherPriorityTaskWoken);獲取事件標志組值事件標志組1、xEventGroupGetBits()獲取事件標志組當前值函數(shù),函數(shù)原型如下:利用這個函數(shù)會返回清0指定事件位之前的事件標志值來完成獲取,參入的參數(shù)0表示沒有那個事件位被清除。#definexEventGroupGetBits(xEventGroup)xEventGroupClearBits(xEventGroup,0);獲取事件標志組值事件標志組2、xEventGroupGetBitsFromISR()中斷服務函數(shù)中用于獲取事件標志組當前值函數(shù),函數(shù)原型如下:EventBits_txEventGroupGetBitsFromISR(EventGroupHandle_txEventGroup);等待指定的事件位事件標志組某個任務可能需要與多個事件更行同步,可使用xEventGroupWaitBits()函數(shù)來判斷多個事件標志位,函數(shù)的原型為:EventBits_txEventGroupWaitBits(EventGroupHandle_txEventGroup, constEventBits_tuxBitsToWaitFor, constBaseType_txClearOnExit, constBaseType_txWaitForAllBits, TickType_txTicksToWait);二、用事件標志組進行任務同步FreeRTOS事件標志組用事件標志組進行任務同步本示例通過操作事件標志組,實現(xiàn)任務與多個事件之間的同步,通過一個函數(shù)appStartTask(),創(chuàng)建四個FreeRTOS任務。任務1的任務函數(shù)為Led0Task(),優(yōu)先級3,其功能是使LED0閃爍,指示程序正在運行。任務2的任務函數(shù)是Led1Task(),優(yōu)先級3,其功能是檢測事件標志位,bit2、bit1、和bit0同時置位時點亮LED1,并輸出信息到串口。任務3是串口輸出守護任務,優(yōu)先級3,任務函數(shù)是printTask(),其功能是將通過隊列傳送過來的字符信息在串口上輸出,任何時候只有該守護任務能訪問串口。用事件標志組進行任務同步任務4是按鍵掃描任務,優(yōu)先級4,任務函數(shù)是keyTask(),其功能是按鍵掃描,并根據(jù)返回的鍵值執(zhí)行事件標志組標志位置1、啟動定時器等操作,模擬事件

溫馨提示

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

評論

0/150

提交評論