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





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



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