信號量另一種通常的用法是用于任務(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ù)。示例如下:
審核編輯:劉清
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標(biāo)題:FreeRTOS二進(jìn)制信號量
文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
相關(guān)推薦
在二進(jìn)制和十進(jìn)制的處理中,有時候一些小技巧是很有用的。
1、把十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)
(1)在MATLAB中有一個函數(shù)dec2bin,可
發(fā)表于 07-05 11:51
?353次閱讀
在數(shù)字電路設(shè)計中,計數(shù)器是一種非常關(guān)鍵的組件,用于測量時間、計數(shù)事件或跟蹤狀態(tài)變化等。其中,二進(jìn)制串行計數(shù)器作為一種常用的計數(shù)器類型,在多種應(yīng)用場景中都發(fā)揮著重要作用。本文將對二進(jìn)制串行計數(shù)器
發(fā)表于 05-28 15:52
?493次閱讀
二進(jìn)制中的兩個數(shù)字0和1稱為位(bit, 是二進(jìn)制數(shù)字binary digit的縮寫)。在數(shù)字電路中,使用兩個不同的電平表示這兩個位。一般情況下,1 用高電平表示,0用低電平表示,這種
發(fā)表于 02-04 16:54
?901次閱讀
背景 c++層數(shù)據(jù)都是二進(jìn)制,需要轉(zhuǎn)換成arrayBuffer透傳到ets層給業(yè)務(wù)使用,但是鴻蒙的使用下面兩個api創(chuàng)建出來的二進(jìn)制數(shù)組數(shù)據(jù)都是錯誤的。 接口
發(fā)表于 01-31 15:24
?1123次閱讀
,我們可以從數(shù)字存儲和數(shù)據(jù)傳輸?shù)慕嵌葋砜催@些進(jìn)制的意義。計算機(jī)內(nèi)部使用的是二進(jìn)制,即由0和1組成的數(shù)字系統(tǒng)。這是因?yàn)橛嬎銠C(jī)中的所有數(shù)據(jù)都被轉(zhuǎn)化為二進(jìn)制形式進(jìn)行處理和存儲。人們使用十
發(fā)表于 01-16 11:14
?1883次閱讀
十進(jìn)制轉(zhuǎn)換為二進(jìn)制是計算機(jī)科學(xué)中非?;A(chǔ)且重要的概念之一。在理解和應(yīng)用計算機(jī)科學(xué)的基礎(chǔ)知識時,掌握這個算法是至關(guān)重要的。 在開始講解十進(jìn)制轉(zhuǎn)換為二進(jìn)制的算法之前,讓我們回顧一下十
發(fā)表于 01-15 10:32
?1439次閱讀
為二進(jìn)制的算法可以分為兩個步驟:整數(shù)部分轉(zhuǎn)換和小數(shù)部分轉(zhuǎn)換。下面將詳細(xì)介紹這兩個步驟。 首先,我們來討論整數(shù)部分的轉(zhuǎn)換。整數(shù)部分的轉(zhuǎn)換是比較簡單的,我們可以通過不斷地進(jìn)行除2取余的操作來得到二
發(fā)表于 01-11 09:14
?1552次閱讀
LabVIEW是一種圖形化編程環(huán)境,用于實(shí)時數(shù)據(jù)采集、信號處理以及自動化控制等領(lǐng)域。它采取了數(shù)據(jù)流編程的思想,用戶可以通過將各種功能模塊進(jìn)行連接,輕松搭建起復(fù)雜的系統(tǒng)。 在LabVIEW中,二進(jìn)制
發(fā)表于 01-05 16:20
?2118次閱讀
在嵌入式系統(tǒng)中,任務(wù)管理是一個重要的部分,它涉及到任務(wù)之間的通信和同步,信號量,隊列,互斥鎖和事件標(biāo)志組等概念。本文將以 FreeRTOS 為例,詳細(xì)講解這些內(nèi)容。
發(fā)表于 12-12 15:25
?1871次閱讀
電子發(fā)燒友網(wǎng)站提供《二進(jìn)制DAC示例介紹.pdf》資料免費(fèi)下載
發(fā)表于 11-28 11:23
?1次下載
本文介紹二進(jìn)制數(shù)據(jù)的相關(guān)知識,如定義、取值范圍計算、轉(zhuǎn)換為十進(jìn)制的方法以及一些常見位數(shù)的二進(jìn)制數(shù)據(jù)的取值范圍等。
發(fā)表于 11-08 15:48
?1561次閱讀
在介紹二進(jìn)制信號量時曾經(jīng)講過,二進(jìn)制信號量可以代替我們裸機(jī)開發(fā)中的標(biāo)志位來使用。在裸機(jī)開發(fā)中我們使用標(biāo)志位來表示某個事件是否發(fā)生,并且其他程
發(fā)表于 11-08 11:10
?633次閱讀
前面幾期我們介紹過隊列、二進(jìn)制信號量以及計數(shù)信號量。但是在使用二進(jìn)制信號量的時候會有一種優(yōu)先級反轉(zhuǎn)問題的出現(xiàn),簡而言之就是低優(yōu)先級任務(wù)因?yàn)闊o
發(fā)表于 11-08 11:07
?728次閱讀
本期在二進(jìn)制信號量的基礎(chǔ)上介紹計數(shù)信號量
發(fā)表于 11-08 11:04
?454次閱讀
應(yīng)該怎么使用ucos的信號量,在什么情況下使用二進(jìn)制信號量和數(shù)值型信號量
發(fā)表于 10-07 07:41
評論