信號量另一種通常的用法是用于任務間的同步機制。
二進制信號量,可以想成是一個布爾類型,只有0 和 1。
兩個任務公用一個信號量,一個任務用于產生信號量,另一個任務使用此信號量。
比如:按鍵按下亮燈,再按一次燈滅。按鍵任務中按鍵按下時,將信號量置1。
亮燈任務中將信號量置0。 用二進制信號量可以減少判斷語句的資源消耗。
API函數:
SemaphoreHandle_t xHandler; 創建二進制Handler xHandler = xSemaphoreCreateBinary(); 創建一個二進制信號量 返回NULL,或者handler xSemaphoreGive(xHandler); 生產者+1 xSemaphoreTake(xHanlder, timeout); 消費者-1 返回pdPASS, 或者pdFAIL 示例如下:
系統判斷,會占用CPU的很大資源,以上示例中判斷按鍵是否按下,可以用中斷處理。在中斷中必須調用函數名以FromISR結尾的函數。示例如下:
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
原文標題:FreeRTOS二進制信號量
文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關注!文章轉載請注明出處。
相關推薦
HEX格式和二進制在多個方面存在顯著的區別。以下是對這兩者的對比: 一、定義與表示方式 HEX格式 : HEX,全稱為Intel HEX,是一種用于存儲和傳輸數據到嵌入式系統(如單片機)的文件格式
發表于 11-18 15:24
?523次閱讀
在數字電子系統中,二進制編碼器扮演著至關重要的角色。它負責將外部世界的模擬信號轉換為計算機可以理解的數字信號。精度和分辨率是衡量二進制編碼器
發表于 11-06 09:56
?405次閱讀
二進制編碼器是一種將二進制信號轉換為數字信號的電子設備,廣泛應用于自動化領域。 一、二進制編碼器的工作原理
發表于 11-06 09:53
?355次閱讀
二進制編碼器是一種電子電路,用于將二進制信號轉換為其他格式,如十進制、格雷碼等。以下是一些常見的二進制編碼器種類及其特點: 優先編碼器(Pr
發表于 11-06 09:47
?493次閱讀
限性。 二進制編碼器概述 二進制編碼器是一種將輸入信號轉換為二進制代碼的設備。它通常用于數字系統中,將模擬信號或非
發表于 11-06 09:45
?445次閱讀
二進制編碼器是一種數字電路,它將輸入的二進制代碼轉換為對應的輸出信號。在數字系統中,編碼器用于將數據從一種形式轉換為另一種形式,以便于處理和傳輸。 二進制編碼器工作原理 輸入與輸出關系
發表于 11-06 09:44
?767次閱讀
在二進制和十進制的處理中,有時候一些小技巧是很有用的。
1、把十進制數轉換成二進制數
(1)在MATLAB中有一個函數dec2bin,可
發表于 07-05 11:51
?577次閱讀
在數字電路設計中,計數器是一種非常關鍵的組件,用于測量時間、計數事件或跟蹤狀態變化等。其中,二進制串行計數器作為一種常用的計數器類型,在多種應用場景中都發揮著重要作用。本文將對二進制串行計數器
發表于 05-28 15:52
?867次閱讀
如何實現二進制和BCD碼數據的相互轉變? 二進制碼是將十進制數字表示為二進制數和十進制數的一種表示方法。在計算機系統中,
發表于 02-18 14:51
?3601次閱讀
二進制中的兩個數字0和1稱為位(bit, 是二進制數字binary digit的縮寫)。在數字電路中,使用兩個不同的電平表示這兩個位。一般情況下,1 用高電平表示,0用低電平表示,這種
發表于 02-04 16:54
?1394次閱讀
背景 c++層數據都是二進制,需要轉換成arrayBuffer透傳到ets層給業務使用,但是鴻蒙的使用下面兩個api創建出來的二進制數組數據都是錯誤的。 接口
發表于 01-31 15:24
?1276次閱讀
,我們可以從數字存儲和數據傳輸的角度來看這些進制的意義。計算機內部使用的是二進制,即由0和1組成的數字系統。這是因為計算機中的所有數據都被轉化為二進制形式進行處理和存儲。人們使用十
發表于 01-16 11:14
?5423次閱讀
十進制轉換為二進制是計算機科學中非常基礎且重要的概念之一。在理解和應用計算機科學的基礎知識時,掌握這個算法是至關重要的。 在開始講解十進制轉換為二進制的算法之前,讓我們回顧一下十
發表于 01-15 10:32
?3313次閱讀
為二進制的算法可以分為兩個步驟:整數部分轉換和小數部分轉換。下面將詳細介紹這兩個步驟。 首先,我們來討論整數部分的轉換。整數部分的轉換是比較簡單的,我們可以通過不斷地進行除2取余的操作來得到二
發表于 01-11 09:14
?2387次閱讀
LabVIEW是一種圖形化編程環境,用于實時數據采集、信號處理以及自動化控制等領域。它采取了數據流編程的思想,用戶可以通過將各種功能模塊進行連接,輕松搭建起復雜的系統。 在LabVIEW中,二進制
發表于 01-05 16:20
?2702次閱讀
評論