0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用二進制信號量取代任務通知

工程師鄧生 ? 來源:硬件會 ? 作者:硬件會 ? 2022-09-15 09:22 ? 次閱讀

二進制信號量只有0和1,兩個任務公用一個信號量,一個任務用于產(chǎn)生信號量(即對信號量+1),另一個任務使用此信號量(即對信號量-1)。

使用二進制信號量,需要創(chuàng)建一個二進制信號量,而任務通知就不需要創(chuàng)建。

任務通知只能用于指定的任務,如果有多個接收方,將無法替代二進制信號量。

比如有三個馬達ABC,每次只運行1個馬達,另外兩個做備份,但要求三個馬達使用頻率得差不多,不能每次都使用A馬達,此時如果用任務通知,就有三個接收方,每次都通知給A馬達,BC永遠不會運轉(zhuǎn)到,將無法實現(xiàn)。 API

xTaskNotifyGive();//命令含義,相當于上篇精簡化的 xTaskNotify() + eIncrement。就是將Notifacation的值累加1

cf9098ce-3492-11ed-ba43-dac502259ad0.png


舉例:

用按鍵控制LED燈亮滅。按鍵任務中當按下按鍵時,用xTaskNotifyGive()將Notifacation的值加1,另一個任務中用ulTaskNotifyTake等待Notifacation變?yōu)?后,執(zhí)行完任務后再重置0.

cfc78a0a-3492-11ed-ba43-dac502259ad0.png

cff0df90-3492-11ed-ba43-dac502259ad0.png



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1588

    瀏覽量

    107399
  • 二進制
    +關(guān)注

    關(guān)注

    2

    文章

    761

    瀏覽量

    41476
  • 按鍵控制器
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6408

原文標題:任務通知取代二進制信號量

文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    二進制處理中的一些技巧

    二進制和十進制的處理中,有時候一些小技巧是很有用的。 1、把十進制數(shù)轉(zhuǎn)換成二進制數(shù) (1)在MATLAB中有一個函數(shù)dec2bin,可以把正整數(shù)轉(zhuǎn)換為2
    的頭像 發(fā)表于 07-05 11:51 ?353次閱讀

    二進制串行計數(shù)器工作原理是什么?

    在數(shù)字電路設計中,計數(shù)器是一種非常關(guān)鍵的組件,用于測量時間、計數(shù)事件或跟蹤狀態(tài)變化等。其中,二進制串行計數(shù)器作為一種常用的計數(shù)器類型,在多種應用場景中都發(fā)揮著重要作用。本文將對二進制串行計數(shù)器
    的頭像 發(fā)表于 05-28 15:52 ?492次閱讀

    如何實現(xiàn)二進制和BCD碼數(shù)據(jù)的相互轉(zhuǎn)變?

    如何實現(xiàn)二進制和BCD碼數(shù)據(jù)的相互轉(zhuǎn)變? 二進制碼是將十進制數(shù)字表示為二進制數(shù)和十進制數(shù)的一種表示方法。在計算機系統(tǒng)中,
    的頭像 發(fā)表于 02-18 14:51 ?2417次閱讀

    二進制與邏輯電平的變化范圍

    二進制中的兩個數(shù)字0和1稱為位(bit, 是二進制數(shù)字binary digit的縮寫)。在數(shù)字電路中,使用兩個不同的電平表示這兩個位。一般情況下,1 用高電平表示,0用低電平表示,這種邏輯體制稱為正邏輯。
    的頭像 發(fā)表于 02-04 16:54 ?900次閱讀
    <b class='flag-5'>二進制</b>與邏輯電平的變化范圍

    鴻蒙二進制數(shù)組創(chuàng)建

    背景 c++層數(shù)據(jù)都是二進制,需要轉(zhuǎn)換成arrayBuffer透傳到ets層給業(yè)務使用,但是鴻蒙的使用下面兩個api創(chuàng)建出來的二進制數(shù)組數(shù)據(jù)都是錯誤的。 接口
    的頭像 發(fā)表于 01-31 15:24 ?1123次閱讀

    二進制、八進制、十六進制在現(xiàn)實當中有什么意義?

    二進制、八進制、十六進制在現(xiàn)實當中有什么意義? 二進制、八進制和十六進制在現(xiàn)實生活中有著廣泛的應
    的頭像 發(fā)表于 01-16 11:14 ?1879次閱讀

    10進制轉(zhuǎn)換為二進制的算法

    進制轉(zhuǎn)換為二進制是計算機科學中非常基礎且重要的概念之一。在理解和應用計算機科學的基礎知識時,掌握這個算法是至關(guān)重要的。 在開始講解十進制轉(zhuǎn)換為二進制的算法之前,讓我們回顧一下十
    的頭像 發(fā)表于 01-15 10:32 ?1433次閱讀

    10進制轉(zhuǎn)換為二進制的算法

    10進制轉(zhuǎn)換為二進制是計算機領(lǐng)域中非常重要的一個問題。在計算機中,所有的數(shù)據(jù)都是以二進制形式進行存儲和處理的。因此,我們常常需要將10進制數(shù)轉(zhuǎn)換為
    的頭像 發(fā)表于 01-11 09:14 ?1551次閱讀

    labview二進制字符串轉(zhuǎn)數(shù)值

    LabVIEW是一種圖形化編程環(huán)境,用于實時數(shù)據(jù)采集、信號處理以及自動化控制等領(lǐng)域。它采取了數(shù)據(jù)流編程的思想,用戶可以通過將各種功能模塊進行連接,輕松搭建起復雜的系統(tǒng)。 在LabVIEW中,二進制
    的頭像 發(fā)表于 01-05 16:20 ?2118次閱讀

    二進制DAC示例介紹

    電子發(fā)燒友網(wǎng)站提供《二進制DAC示例介紹.pdf》資料免費下載
    發(fā)表于 11-28 11:23 ?1次下載
    <b class='flag-5'>二進制</b>DAC示例介紹

    二進制最佳接收原理 二進制最佳接收機的實現(xiàn)形式有哪兩種?

    二進制最佳接收原理 二進制最佳接收機的實現(xiàn)形式有哪兩種? 二進制最佳接收原理是計算機通信中的重要概念,它是指在二進制通信中通過一定的方法,使接收機在
    的頭像 發(fā)表于 11-27 16:19 ?852次閱讀

    基于STM32F407的FreeRTOS學習筆記(11)

    在前面的學習中例如信號量、隊列中經(jīng)常會出現(xiàn)提示:在許多情況下,“任務通知”可以提供二進制信號量的輕量級替代方案。
    的頭像 發(fā)表于 11-13 17:23 ?577次閱讀
    基于STM32F407的FreeRTOS學習筆記(11)

    二進制數(shù)據(jù)及取值范圍的計算方法

    本文介紹二進制數(shù)據(jù)的相關(guān)知識,如定義、取值范圍計算、轉(zhuǎn)換為十進制的方法以及一些常見位數(shù)的二進制數(shù)據(jù)的取值范圍等。
    的頭像 發(fā)表于 11-08 15:48 ?1561次閱讀
    <b class='flag-5'>二進制</b>數(shù)據(jù)及取值范圍的計算方法

    基于STM32F407的FreeRTOS學習筆記(8)

    前面幾期我們介紹過隊列、二進制信號量以及計數(shù)信號量。但是在使用二進制信號量的時候會有一種優(yōu)先級反轉(zhuǎn)問題的出現(xiàn),簡而言之就是低優(yōu)先級
    的頭像 發(fā)表于 11-08 11:07 ?728次閱讀
    基于STM32F407的FreeRTOS學習筆記(8)

    怎么使用ucos的信號量?

    應該怎么使用ucos的信號量,在什么情況下使用二進制信號量和數(shù)值型信號量
    發(fā)表于 10-07 07:41