1、事件位(事件標(biāo)志)
事件位用來(lái)表明某個(gè)事件是否發(fā)生,事件位通常用作事件標(biāo)志,比如下面的幾個(gè)例子:
● 當(dāng)收到一條消息并且把這條消息處理掉以后就可以將某個(gè)位(標(biāo)志)置 1,當(dāng)隊(duì)列中沒(méi)有消息需要處理的時(shí)候就可以將這個(gè)位(標(biāo)志)置 0。
● 當(dāng)把隊(duì)列中的消息通過(guò)網(wǎng)絡(luò)發(fā)送輸出以后就可以將某個(gè)位(標(biāo)志)置 1,當(dāng)沒(méi)有數(shù)據(jù)需要從網(wǎng)絡(luò)發(fā)送出去的話就將這個(gè)位(標(biāo)志)置 0。
● 現(xiàn)在需要向網(wǎng)絡(luò)中發(fā)送一個(gè)心跳信息,將某個(gè)位(標(biāo)志)置 1。現(xiàn)在不需要向網(wǎng)絡(luò)中發(fā)送心跳信息,這個(gè)位(標(biāo)志)置 0。
2、事件組
一個(gè)事件組就是一組的事件位,事件組中的事件位通過(guò)位編號(hào)來(lái)訪問(wèn),同樣,以上面列出的三個(gè)例子為例:
● 事件標(biāo)志組的 bit0 表示隊(duì)列中的消息是否處理掉。
● 事件標(biāo)志組的 bit1 表示是否有消息需要從網(wǎng)絡(luò)中發(fā)送出去。
● 事件標(biāo)志組的 bit2 表示現(xiàn)在是否需要向網(wǎng)絡(luò)發(fā)送心跳信息。
3、事件標(biāo)志組和事件位的數(shù)據(jù)類型
事件標(biāo)志組的數(shù)據(jù)類型為 EventGroupHandle_t,當(dāng) configUSE_16_BIT_TICKS 為 1 的時(shí)候 事件標(biāo)志組可以存儲(chǔ) 8 個(gè)事件位,當(dāng) configUSE_16_BIT_TICKS 為 0 的時(shí)候事件標(biāo)志組存儲(chǔ) 24個(gè)事件位。
事件標(biāo)志組中的所有事件位都存儲(chǔ)在一個(gè)無(wú)符號(hào)的 EventBits_t 類型的變量中,EventBits_t 在 event_groups.h 中有如下定義:
typedef
TickType_tEventBits_t;
數(shù)據(jù)類型 TickType_t 在文件 portmacro.h 中有如下定義:
#if(configUSE_16_BIT_TICKS==1)
typedef
uint16_t
TickType_t;
#defineportMAX_DELAY(TickType_t)0xffff
#else
typedef
uint32_t
TickType_t;
#defineportMAX_DELAY(TickType_t)0xffffffffUL
#defineportTICK_TYPE_IS_ATOMIC1
#endif
可以看出當(dāng) configUSE_16_BIT_TICKS 為 0 的時(shí)候 TickType_t 是個(gè) 32 位的數(shù)據(jù)類型,因 此 EventBits_t 也是個(gè) 32 位的數(shù)據(jù)類型。EventBits_t 類型的變量可以存儲(chǔ) 24 個(gè)事件位,另外的那高 8 位有其他用。事件位 0 存放在這個(gè)變量的 bit0 上,變量的 bit1 就是事件位 1,以此類推。
-
嵌入式
+關(guān)注
關(guān)注
5141文章
19530瀏覽量
314942 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7241瀏覽量
91001 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
489瀏覽量
63742
發(fā)布評(píng)論請(qǐng)先 登錄
使用STM32CubeMX生成的FreeRTOS系統(tǒng)中,似乎沒(méi)有新封裝的事件標(biāo)志組,怎么解決?
使用FreeRTOS系統(tǒng)事件標(biāo)志組有些收不到是怎么回事?
轉(zhuǎn):freeRTOS事件組學(xué)習(xí)
轉(zhuǎn):第18章 FreeRTOS事件標(biāo)志組
轉(zhuǎn):第26章 FreeRTOS任務(wù)事件標(biāo)志組
【NUCLEO-F412ZG試用體驗(yàn)】FreeRTOS_事件標(biāo)志組實(shí)現(xiàn)任務(wù)和中斷的同步
UCOS3的事件標(biāo)志組
freertos中斷置位事件標(biāo)志組輸出Error的解決辦法?
【轉(zhuǎn)載】AT32 FreeRTOS應(yīng)用筆記
怎樣去設(shè)置FreeRTOS事件標(biāo)志組的事件位呢
freeRTOS中的消息郵箱

freeRTOS用于任務(wù)之間同步的手段事件標(biāo)志組
FreeRTOS的事件標(biāo)志組
FreeRTOS創(chuàng)建事件標(biāo)志組

評(píng)論