
與信號(hào)量類似,事件組是任務(wù)共享了3個(gè)字節(jié)(24bit)的內(nèi)容,但不同的是事件組能針對(duì)1對(duì)多,多對(duì)多的任務(wù)。如下圖所示:
左邊的任務(wù)可以對(duì)事件組的某一位置1或者清0,變?yōu)?說(shuō)明某任務(wù)發(fā)生了。右邊的任務(wù)就是阻塞等待,監(jiān)控該位是否變?yōu)?

舉個(gè)在淘寶上買東西的例子:

任務(wù)1負(fù)責(zé)監(jiān)督是否有商品添加到購(gòu)物車;用戶添加到購(gòu)物車第0位置1,沒(méi)添購(gòu)物車第0位置0 任務(wù)2負(fù)責(zé)監(jiān)督是否付款,當(dāng)監(jiān)督到任務(wù)1置1時(shí),打開(kāi)支付寶扣款成功了第1位置1 任務(wù)3是負(fù)責(zé)出貨,當(dāng)監(jiān)督到任務(wù)2置1后,將第2位置1 當(dāng)?shù)?、1、2位都為1時(shí),說(shuō)明交易完成了。
位移操作:
1<<0:1往左邊移0位,表示第0位為1 1<<1:1往左邊移1位,表示第1位為1 1<<2:1往左邊移2位,表示第2位為1 位或運(yùn)算,實(shí)質(zhì)就是相加:0001|0010|0100=0111 if(a&b):a與b位與,對(duì)應(yīng)的兩個(gè)二進(jìn)制位均是1的時(shí)候結(jié)果位才是1,否則為0
API函數(shù):
EventGroupHandle_t xEventPurchase = NULL;//創(chuàng)建事件句柄
xEventPurchase = xEventGroupCreate();//創(chuàng)建事件組
xEventGroupSetBits(xEventPurchase,1<<0); // 將bit 0 設(shè)置為1

xEventGroupGetBits(xEventPurchase); //讀取
xEventGroupClearBits(xEventPurchase, 0xFFFFFF); //清0
代碼舉例:





審核編輯:劉清
-
FreeRTOS
+關(guān)注
關(guān)注
14文章
499瀏覽量
66998 -
信號(hào)量
+關(guān)注
關(guān)注
0文章
53瀏覽量
8771
原文標(biāo)題:FreeRTOS事件組(等待)
文章出處:【微信號(hào):硬件會(huì),微信公眾號(hào):硬件會(huì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
DR1 系列評(píng)估板 PS 端裸機(jī)與 FreeRTOS 開(kāi)發(fā)案例手冊(cè)
ucos與freertos哪個(gè)好?
FreeRTOS和uC/OS-II的功能特性
freertos關(guān)閉任務(wù)調(diào)度的方法
FreeRTOS與uC/OS-II如何選擇?
FreeRtos 能否同時(shí)使用兩個(gè) CPU?
FreeRTOS任務(wù)調(diào)度及優(yōu)先級(jí)問(wèn)題
【CPKCOR-RA8D1】關(guān)于AI人臉檢測(cè)移植遇到的一些問(wèn)題
如何使用 CyCloneTCP 和 FreeRTOS 從 SNTP 服務(wù)器獲取時(shí)間?
UART在freertos中斷時(shí)不接收數(shù)據(jù),怎么解決?
為FreeRTOS增加新的設(shè)備驅(qū)動(dòng)程序
OPENRTOS為FreeRTOS提供商業(yè)許可證
詳解FreeRTOS與SAFERTOS的區(qū)別
FreeRTOS事件組是什么意思
評(píng)論