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

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

3天内不再提示

FreeRTOS用二进制信号量可以减少判断语句的资源消耗

工程师邓生 ? 来源:硬件会 ? 作者:硬件会 ? 2022-09-15 11:43 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

信号量另一种通常的用法是用于任务间的同步机制。

二进制信号量,可以想成是一个布尔类型,只有0 和 1。

两个任务公用一个信号量,一个任务用于产生信号量,另一个任务使用此信号量。

比如:按键按下亮灯,再按一次灯灭。按键任务中按键按下时,将信号量置1。

亮灯任务中将信号量置0。 用二进制信号量可以减少判断语句的资源消耗。

API函数:

SemaphoreHandle_t xHandler; 创建二进制Handler xHandler = xSemaphoreCreateBinary(); 创建一个二进制信号量 返回NULL,或者handler xSemaphoreGive(xHandler); 生产者+1 xSemaphoreTake(xHanlder, timeout); 消费者-1 返回pdPASS, 或者pdFAIL 示例如下:

938356fc-3120-11ed-ba43-dac502259ad0.png

93ae5e42-3120-11ed-ba43-dac502259ad0.png

93d3d820-3120-11ed-ba43-dac502259ad0.png

93edc762-3120-11ed-ba43-dac502259ad0.png

9409095a-3120-11ed-ba43-dac502259ad0.png

系统判断,会占用CPU的很大资源,以上示例中判断按键是否按下,可以用中断处理。在中断中必须调用函数名以FromISR结尾的函数。示例如下:

9427d542-3120-11ed-ba43-dac502259ad0.png

9447f6d8-3120-11ed-ba43-dac502259ad0.png

94593308-3120-11ed-ba43-dac502259ad0.png



审核编辑:刘清

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

    关注

    68

    文章

    11121

    浏览量

    218389
  • FreeRTOS
    +关注

    关注

    13

    文章

    495

    浏览量

    64769
  • API函数
    +关注

    关注

    0

    文章

    15

    浏览量

    8293

原文标题:FreeRTOS二进制信号量

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    偏移二进制二进制补码如何和实际数据对应,如何转换?

    偏移二进制二进制补码如何和实际数据对应,如何转换,请哪位高手解惑
    发表于 01-16 06:01

    bcd编码的应用 bcd与二进制的区别

    直接对应于我们日常使用的十进制数字系统。以下是BCD编码的一些应用和它与二进制编码的区别: BCD编码的应用 数字显示设备 :在数字钟表、计算器和其他需要显示十进制数字的设备中,BCD编码可以
    的头像 发表于 12-20 17:11 ?3505次阅读

    hex格式和二进制的区别

    HEX格式和二进制在多个方面存在显著的区别。以下是对这两者的对比: 一、定义与表示方式 HEX格式 : HEX,全称为Intel HEX,是一种用于存储和传输数据到嵌入式系统(如单片机)的文件格式
    的头像 发表于 11-18 15:24 ?2022次阅读

    在线二进制编码器:数据转换的快捷通道

    在数字时代,数据的快速转换与处理至关重要。二进制编码,作为计算机内部数据表示的基础,将信息转化为0和1的序列,为数字世界构建了沟通的桥梁。然而,对于非专业用户来说,手动进行二进制编码既繁琐又易出错
    的头像 发表于 11-15 09:01 ?1960次阅读

    base64字符串转换为二进制文件

    Base64是一种编码方法,用于将二进制数据转换为ASCII字符串。这种编码通常用于在不支持二进制数据的系统中传输数据,例如电子邮件或网页。将Base64字符串转换为二进制文件的过程相对简单,但需要
    的头像 发表于 11-10 10:55 ?3024次阅读

    ASCII码和二进制的转换关系

    。ASCII码使用7位二进制数来表示128个不同的字符,包括大小写英文字母、数字0-9以及一些控制字符和标点符号。后来,ASCII码被扩展到了8位,即ASCII-8BIT,可以表示256个不同的字符。 二进制
    的头像 发表于 11-10 09:50 ?4394次阅读

    二进制编码器的精度与分辨率

    在数字电子系统中,二进制编码器扮演着至关重要的角色。它负责将外部世界的模拟信号转换为计算机可以理解的数字信号。精度和分辨率是衡量二进制编码器
    的头像 发表于 11-06 09:56 ?1357次阅读

    二进制编码器在自动化领域的作用

    二进制编码器是一种将二进制信号转换为数字信号的电子设备,广泛应用于自动化领域。 一、二进制编码器的工作原理
    的头像 发表于 11-06 09:53 ?1064次阅读

    二进制编码器的故障排除指南

    二进制编码器是一种将二进制信号转换为数字信号的电子设备,广泛应用于计算机、通信和自动化控制系统中。当二进制编码器出现问题时,有效的故障排除是
    的头像 发表于 11-06 09:49 ?1098次阅读

    二进制编码器在机器人中的应用

    二进制信号,为机器人提供精确的状态信息。 二进制编码器的工作原理 二进制编码器是一种将物理(如位置、速度等)转换为
    的头像 发表于 11-06 09:48 ?1305次阅读

    二进制编码器的种类及特点

    二进制编码器是一种电子电路,用于将二进制信号转换为其他格式,如十进制、格雷码等。以下是一些常见的二进制编码器种类及其特点: 优先编码器(Pr
    的头像 发表于 11-06 09:47 ?1606次阅读

    二进制编码器应用场景 二进制编码器与模拟编码器比较

    限性。 二进制编码器概述 二进制编码器是一种将输入信号转换为二进制代码的设备。它通常用于数字系统中,将模拟信号或非
    的头像 发表于 11-06 09:45 ?1374次阅读

    二进制编码器工作原理 如何选择二进制编码器

    二进制编码器是一种数字电路,它将输入的二进制代码转换为对应的输出信号。在数字系统中,编码器用于将数据从一种形式转换为另一种形式,以便于处理和传输。 二进制编码器工作原理 输入与输出关系
    的头像 发表于 11-06 09:44 ?2672次阅读

    二进制补码及与原码的互相转换方法

    大沙把一些基础的知识说清楚,本文介绍二进制补码及与原码的转换方法。 先说原码,原码?是一种计算机中对数字的二进制定点表示方法。在原码表示法中,数值前面增加了一位符号位,最高位为符号位,0表示正数,1
    的头像 发表于 09-19 22:25 ?1692次阅读

    计算机采用二进制的原因不包括什么

    ,我们先简要回顾一下为什么计算机会采用二进制。 物理实现的简便性 :计算机的硬件,如晶体管,可以用两种稳定状态来表示信息,通常是0和1,这对应于二进制的两个数字。这种二进制系统非常适合
    的头像 发表于 09-04 17:03 ?1381次阅读