欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    09嵌入式实时操作系统FreeRTOS事件标志组.ppt

    • 资源ID:87675371       资源大小:646.50KB        全文页数:16页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    09嵌入式实时操作系统FreeRTOS事件标志组.ppt

    嵌入式实时操作系统嵌入式实时操作系统FreeRTOSFreeRTOS原理及应用原理及应用基基于于STM32STM32微控制器微控制器嵌入式实时操作系统嵌入式实时操作系统FreeRTOS原理及应用原理及应用张超张超 主编主编STM32 Cortex-M4通用开发板通用开发板嵌入式实时操作系统嵌入式实时操作系统FreeRTOS原理及应用原理及应用事件标志组事件标志组用事件标志组进行任务同步用事件标志组进行任务同步FreeRTOS事件标志组事件标志组主要内容:主要内容:一、事件标志组事件标志组FreeRTOS事件标志组事件标志组事件标志组事件标志组用一个二进制位来表示一个事件,当这个二进制位为1时,表明发生了对应事件,为0时没有发生,这样,多个二进制位组合在一起就可以用来表示事件标志组。在FreeRTOS中,事件标志组中的所有事件位使用一个EventBits_t的数据类型来存储。这个数据类型与处理器的字长有关,在STM32微控制器上,这个数据类型为32位。FreeRTOS事件标志组只使用低24位用来存储事件位,故事件标志组最多只能存储24个事件。创建事件标志组创建事件标志组事件标志组事件标志组用函数xEventGroupCreate()来创建事件标志组,函数的原型为:EventGroupHandle_t xEventGroupCreate(void)设置事件位设置事件位事件标志组事件标志组设置事件位涉及二种操作,置1和清0。1、xEventGroupClearBits()事件标志位清0函数,函数原型如下:EventBits_t xEventGroupClearBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToClear);设置事件位设置事件位事件标志组事件标志组2、xEventGroupClearBitsFromISR()中断服务函数中用于事件标志位清0函数,函数原型如下:BaseType_t xEventGroupClearBitsFromISR(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToClear);设置事件位设置事件位事件标志组事件标志组3、xEventGroupSetBits()事件标志位置1函数,函数原型如下:EventBits_t xEventGroupSetBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet);设置事件位设置事件位事件标志组事件标志组4、xEventGroupSetBitsFromISR()中断服务函数中用于事件标志位置1函数,函数原型如下:BaseType_t xEventGroupSetBitsFromISR(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet,BaseType_t*pxHigherPriorityTaskWoken);获取事件标志组值获取事件标志组值事件标志组事件标志组1、xEventGroupGetBits()获取事件标志组当前值函数,函数原型如下:利用这个函数会返回清0指定事件位之前的事件标志值来完成获取,参入的参数0表示没有那个事件位被清除。#define xEventGroupGetBits(xEventGroup)xEventGroupClearBits(xEventGroup,0);获取事件标志组值获取事件标志组值事件标志组事件标志组2、xEventGroupGetBitsFromISR()中断服务函数中用于获取事件标志组当前值函数,函数原型如下:EventBits_t xEventGroupGetBitsFromISR(EventGroupHandle_t xEventGroup);等待指定的事件位等待指定的事件位事件标志组事件标志组某个任务可能需要与多个事件更行同步,可使用xEventGroupWaitBits()函数来判断多个事件标志位,函数的原型为:EventBits_t xEventGroupWaitBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToWaitFor,const BaseType_t xClearOnExit,const BaseType_t xWaitForAllBits,TickType_t xTicksToWait);二、用事件标志组进行任务同步用事件标志组进行任务同步FreeRTOS事件标志组事件标志组用事件标志组进行任务同步用事件标志组进行任务同步本示例通过操作事件标志组,实现任务与多个事件之间的同步,通过一个函数appStartTask(),创建四个FreeRTOS任务。任务1的任务函数为Led0Task(),优先级3,其功能是使LED0闪烁,指示程序正在运行。任务2的任务函数是Led1Task(),优先级3,其功能是检测事件标志位,bit2、bit1、和bit0同时置位时点亮LED1,并输出信息到串口。任务3是串口输出守护任务,优先级3,任务函数是printTask(),其功能是将通过队列传送过来的字符信息在串口上输出,任何时候只有该守护任务能访问串口。用事件标志组进行任务同步用事件标志组进行任务同步任务4是按键扫描任务,优先级4,任务函数是keyTask(),其功能是按键扫描,并根据返回的键值执行事件标志组标志位置1、启动定时器等操作,模拟事件发生。示例中使用到三个按键,KEY0键用于将事件标志组bit0置1,KEY1键用于将事件标志组bit1置1,KEY2用于启动TIM2,在TIM2的更新中断将事件标志组bit2置1后停止TIM2。

    注意事项

    本文(09嵌入式实时操作系统FreeRTOS事件标志组.ppt)为本站会员(高校教****PT)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开