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

    文章

    1422

    浏览量

    106556
  • 二进制
    +关注

    关注

    2

    文章

    598

    浏览量

    40940
  • 按键控制器
    +关注

    关注

    0

    文章

    8

    浏览量

    6369
收藏 人收藏

    评论

    相关推荐

    怎么使用ucos的信号量

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

    Mindows操作系统更新到4.7节,增加二进制信号量功能

    二进制信号量功能某些资源在同一时刻只可以被一个任务操作,实时操作系统的任务抢占特性会导致这些资源可能被多个任务同时操作,从而产生错误。从本节将讲述
    发表于 11-17 21:45

    请求信号量是什么意思?

    信号量相当于变量,下面有几点疑问1.下图是OSSemCreate();函数创建信号量,创建一个二进制信号量将初始值置1,那么运行OSSemPost();信号量加一,
    发表于 09-27 04:35

    如何使用二进制信号量

    二进制信号量。如何去判断二进制信号量 0和1.看来书写的是空的时候为0.满的时候为1,但是如何去判断0和1。
    发表于 06-15 03:19

    信号量和互斥信号量的相关资料分享

    二进制信号量理解为java里的独享锁,计数形的看成类似于共享锁。信号量API函数OSSemCreateOSSemDel关于opt(我理解为模式),在源码的上面说明了。本人英语不太行。大概翻译过来就是这个意思,,,emm,,用大白话讲,就是,第一种用模式的话,只有需要信号量任务都跑完了,它
    发表于 03-02 07:11

    二进制加法程序【汇编版】

    二进制加法程序【汇编版】二进制加法程序【汇编版】二进制加法程序【汇编版】二进制加法程序【汇编版】
    发表于 12-29 11:02 3次下载

    FreeRTOS高级篇8---FreeRTOS任务通知分析

    任务通知。在大多数情况下,任务通知可以替代二进制信号量、计数信号量、事件组,可以替代长...
    发表于 01-26 17:36 10次下载
    FreeRTOS高级篇8---FreeRTOS<b>任务</b><b>通知</b>分析

    FreeRTOS高级篇6---FreeRTOS信号量分析

    信号量包括二进制信号量、计数信号量、互斥信号量(以后简称互斥)和递归互斥信号量(以后简称递归互斥)。关于它们的区...
    发表于 01-26 17:39 7次下载
    FreeRTOS高级篇6---FreeRTOS<b>信号量</b>分析

    FreeRTOS高级篇5---FreeRTOS队列分析

    任务间通讯方式,包括:任务通知(版本V8.2以及以上版本)队列二进制信号量计数信号量互斥递归互斥其中,二进制...
    发表于 01-26 17:40 7次下载
    FreeRTOS高级篇5---FreeRTOS队列分析

    FreeRTOS系列第20篇---FreeRTOS信号量API函数

    信号量包括二进制信号量、计数信号量、互斥信号量(以后简称互斥)和递归互斥信号量(以后简称递归互斥)。我们可以把互...
    发表于 01-26 17:44 4次下载
    FreeRTOS系列第20篇---FreeRTOS<b>信号量</b>API函数

    二进制

    二进制   
    发表于 04-06 23:48 6919次阅读
    <b>二进制</b>

    二进制编码和二进制数据

    二进制编码和二进制数据   
    发表于 10-13 16:22 4124次阅读

    二进制电平,什么是二进制电平

    二进制电平,什么是二进制电平 在
    发表于 03-17 16:51 2137次阅读

    FreeRTOS的信号量

    信号量是一种任务间通信的方式,信号量包括:信号量、互斥信号量、计数信号量,本次实验只使用信号量信号量用于任务间的同步,FreeRTOS是多任务系统,不同
    的头像 发表于 02-10 15:07 588次阅读

    Free RTOS的互斥信号量

    二进制信号量和互斥非常相似,但确实有一些细微的区别。互斥体包含优先级继承机制,而二进制信号量没有。这使得二进制信号量成为实现同步(任务之间或任务与中断之间)的更好选择,互斥体成为实现简单互斥的更好选择。
    的头像 发表于 02-10 15:36 464次阅读
    Free RTOS的互斥<b>信号量</b>