信號量另一種通常的用法是用于任務(wù)間的同步機(jī)制。
二進(jìn)制信號量,可以想成是一個布爾類型,只有0 和 1。
兩個任務(wù)公用一個信號量,一個任務(wù)用于產(chǎn)生信號量,另一個任務(wù)使用此信號量。
比如:按鍵按下亮燈,再按一次燈滅。按鍵任務(wù)中按鍵按下時,將信號量置1。
亮燈任務(wù)中將信號量置0。 用二進(jìn)制信號量可以減少判斷語句的資源消耗。
API函數(shù):
SemaphoreHandle_t xHandler; 創(chuàng)建二進(jìn)制Handler xHandler = xSemaphoreCreateBinary(); 創(chuàng)建一個二進(jìn)制信號量 返回NULL,或者h(yuǎn)andler xSemaphoreGive(xHandler); 生產(chǎn)者+1 xSemaphoreTake(xHanlder, timeout); 消費(fèi)者-1 返回pdPASS, 或者pdFAIL 示例如下:





系統(tǒng)判斷,會占用CPU的很大資源,以上示例中判斷按鍵是否按下,可以用中斷處理。在中斷中必須調(diào)用函數(shù)名以FromISR結(jié)尾的函數(shù)。示例如下:



審核編輯:劉清
-
cpu
+關(guān)注
關(guān)注
68文章
11281瀏覽量
225094 -
FreeRTOS
+關(guān)注
關(guān)注
14文章
499瀏覽量
66959 -
API函數(shù)
+關(guān)注
關(guān)注
0文章
15瀏覽量
8426
原文標(biāo)題:FreeRTOS二進(jìn)制信號量
文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
CDx4HC283與CDx4HCT283:4位二進(jìn)制全加器的技術(shù)解析與應(yīng)用指南
德州儀器4位二進(jìn)制全加器:SN54/74系列的技術(shù)剖析
探索CD54/74AC283與CD54/74ACT283:高效4位二進(jìn)制加法器的奧秘
CDx4HC283和CDx4HCT283:高速CMOS邏輯4位二進(jìn)制全加器的詳細(xì)解析
解析CD54/74AC283與CD54/74ACT283:4位二進(jìn)制加法器的卓越之選
CD54/74AC283與CD54/74ACT283:高性能4位二進(jìn)制加法器的全面解析
SN54F283與SN74F283:4位二進(jìn)制全加器的技術(shù)剖析
德州儀器4位二進(jìn)制全加器:SN54/74283系列深度解析
二進(jìn)制查找(Binary Search)介紹
FreeRTOS和uC/OS-II的功能特性
如何在vivado上基于二進(jìn)制碼對指令運(yùn)行狀態(tài)進(jìn)行判斷
在vivado上基于二進(jìn)制碼對指令運(yùn)行狀態(tài)進(jìn)行判斷
二進(jìn)制數(shù)據(jù)處理方法分享
FreeRTOS用二進(jìn)制信號量可以減少判斷語句的資源消耗
評論