0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用二进制信号量取代任务通知

工程师邓生 来源:硬件会 作者:硬件会 2022-09-15 09:22 次阅读

二进制信号量只有0和1,两个任务公用一个信号量,一个任务用于产生信号量(即对信号量+1),另一个任务使用此信号量(即对信号量-1)。

使用二进制信号量,需要创建一个二进制信号量,而任务通知就不需要创建。

任务通知只能用于指定的任务,如果有多个接收方,将无法替代二进制信号量。

比如有三个马达ABC,每次只运行1个马达,另外两个做备份,但要求三个马达使用频率得差不多,不能每次都使用A马达,此时如果用任务通知,就有三个接收方,每次都通知给A马达,BC永远不会运转到,将无法实现。 API

xTaskNotifyGive();//命令含义,相当于上篇精简化的 xTaskNotify() + eIncrement。就是将Notifacation的值累加1

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


举例:

用按键控制LED灯亮灭。按键任务中当按下按键时,用xTaskNotifyGive()将Notifacation的值加1,另一个任务中用ulTaskNotifyTake等待Notifacation变为1后,执行完任务后再重置0.

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

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



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led灯
    +关注

    关注

    22

    文章

    1588

    浏览量

    107405
  • 二进制
    +关注

    关注

    2

    文章

    761

    浏览量

    41476
  • 按键控制器
    +关注

    关注

    0

    文章

    8

    浏览量

    6408

原文标题:任务通知取代二进制信号量

文章出处:【微信号:硬件会,微信公众号:硬件会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    二进制处理中的一些技巧

    二进制和十进制的处理中,有时候一些小技巧是很有用的。 1、把十进制数转换成二进制数 (1)在MATLAB中有一个函数dec2bin,可以把正整数转换为2
    的头像 发表于 07-05 11:51 356次阅读

    二进制串行计数器工作原理是什么?

    在数字电路设计中,计数器是一种非常关键的组件,用于测量时间、计数事件或跟踪状态变化等。其中,二进制串行计数器作为一种常用的计数器类型,在多种应用场景中都发挥着重要作用。本文将对二进制串行计数器
    的头像 发表于 05-28 15:52 493次阅读

    如何实现二进制和BCD码数据的相互转变?

    如何实现二进制和BCD码数据的相互转变? 二进制码是将十进制数字表示为二进制数和十进制数的一种表示方法。在计算机系统中,
    的头像 发表于 02-18 14:51 2431次阅读

    二进制与逻辑电平的变化范围

    二进制中的两个数字0和1称为位(bit, 是二进制数字binary digit的缩写)。在数字电路中,使用两个不同的电平表示这两个位。一般情况下,1 用高电平表示,0用低电平表示,这种逻辑体制称为正逻辑。
    的头像 发表于 02-04 16:54 904次阅读
    <b class='flag-5'>二进制</b>与逻辑电平的变化范围

    鸿蒙二进制数组创建

    背景 c++层数据都是二进制,需要转换成arrayBuffer透传到ets层给业务使用,但是鸿蒙的使用下面两个api创建出来的二进制数组数据都是错误的。 接口
    的头像 发表于 01-31 15:24 1123次阅读

    二进制、八进制、十六进制在现实当中有什么意义?

    二进制、八进制、十六进制在现实当中有什么意义? 二进制、八进制和十六进制在现实生活中有着广泛的应
    的头像 发表于 01-16 11:14 1915次阅读

    10进制转换为二进制的算法

    进制转换为二进制是计算机科学中非常基础且重要的概念之一。在理解和应用计算机科学的基础知识时,掌握这个算法是至关重要的。 在开始讲解十进制转换为二进制的算法之前,让我们回顾一下十
    的头像 发表于 01-15 10:32 1453次阅读

    10进制转换为二进制的算法

    10进制转换为二进制是计算机领域中非常重要的一个问题。在计算机中,所有的数据都是以二进制形式进行存储和处理的。因此,我们常常需要将10进制数转换为
    的头像 发表于 01-11 09:14 1562次阅读

    labview二进制字符串转数值

    LabVIEW是一种图形化编程环境,用于实时数据采集、信号处理以及自动化控制等领域。它采取了数据流编程的思想,用户可以通过将各种功能模块进行连接,轻松搭建起复杂的系统。 在LabVIEW中,二进制
    的头像 发表于 01-05 16:20 2123次阅读

    二进制DAC示例介绍

    电子发烧友网站提供《二进制DAC示例介绍.pdf》资料免费下载
    发表于 11-28 11:23 1次下载
    <b class='flag-5'>二进制</b>DAC示例介绍

    二进制最佳接收原理 二进制最佳接收机的实现形式有哪两种?

    二进制最佳接收原理 二进制最佳接收机的实现形式有哪两种? 二进制最佳接收原理是计算机通信中的重要概念,它是指在二进制通信中通过一定的方法,使接收机在
    的头像 发表于 11-27 16:19 852次阅读

    基于STM32F407的FreeRTOS学习笔记(11)

    在前面的学习中例如信号量、队列中经常会出现提示:在许多情况下,“任务通知”可以提供二进制信号量的轻量级替代方案。
    的头像 发表于 11-13 17:23 579次阅读
    基于STM32F407的FreeRTOS学习笔记(11)

    二进制数据及取值范围的计算方法

    本文介绍二进制数据的相关知识,如定义、取值范围计算、转换为十进制的方法以及一些常见位数的二进制数据的取值范围等。
    的头像 发表于 11-08 15:48 1566次阅读
    <b class='flag-5'>二进制</b>数据及取值范围的计算方法

    基于STM32F407的FreeRTOS学习笔记(8)

    前面几期我们介绍过队列、二进制信号量以及计数信号量。但是在使用二进制信号量的时候会有一种优先级反转问题的出现,简而言之就是低优先级
    的头像 发表于 11-08 11:07 732次阅读
    基于STM32F407的FreeRTOS学习笔记(8)

    怎么使用ucos的信号量

    应该怎么使用ucos的信号量,在什么情况下使用二进制信号量和数值型信号量
    发表于 10-07 07:41