当前位置: 首页 > news >正文

济南开发网站网站怎么申请备案

济南开发网站,网站怎么申请备案,吉林省长春市,喷泉网站哪里做。事件标志组定义 FreeRTOS事件标志组介绍 FreeRTOS事件标志组工作原理 一。事件标志组定义 信号量信号量只能实现任务与单个事件或任务间的同步。但是某些任务可能会需要与多个事件或任务进行同步,此时就可以使用事件标志组来解决。事件标志组能够实现某个任务与…

。事件标志组定义

FreeRTOS事件标志组介绍

FreeRTOS事件标志组工作原理

一。事件标志组定义

信号量信号量只能实现任务与单个事件或任务间的同步。但是某些任务可能会需要与多个事件或任务进行同步,此时就可以使用事件标志组来解决。事件标志组能够实现某个任务与多个事件或任务间的同步。

 如上图所示:

        事件可以由两个或两个以上来触发运行,所以引入事件标志组定义。

2.FreeRTOS事件标志组介绍

有24个位,中断或者任务运行结束,把为SET为1,当满足条件时,运行Task2. 

3.FreeRTOS事件标志组工作原理

 任务1需要事件3与4同时运行,任务0需要事件3或者4运行,所以当事件3运行后,任务0激活,任务1不激活。当事件4发生后,任务0才激活。

二。实验:事件标志组函数的应用

1.功能需求

1、使用事件标志组检测多个按键输入(K3、K4、K5、K6)

2、当检测到任何一个按键按下,串口打印输出按键信息

3、当4路按键都已经按下,触发蜂鸣器报警

2.API

(1)xEventGroupCreate()创建事件标志组#include "event_groups.h"

(2) xEventGroupSetBits()在任务中设置事件标志单位

 (3)xEventGroupSetBitsFromISR()中断设置事件标志组位

 (4)xEventGroupGetBits()在任务中获取事件标志组位值

 (5)xEventGroupGetBitsFromISR()中断中获取事件标志组位的值

(6)xEventGroupWaitBits()等待事件标志组位触发

 (7)xEventGroupSync()此功能通常用于同步多个任务

3.功能需求及具体实现方法

1、使用事件标志组检测多个按键输入(K3、K4、K5、K6)

2、当检测到任何一个按键按下,串口打印输出按键信息

3、当4路按键都已经按下,触发蜂鸣器报警

4.cubemx创建工程

(1)Key3-Key6都设置成中断输出,并把上下沿都设置成可导致中断。NVIC也设置一下。

 

(2)FREERTOS的配置

        上述的API接口xEventGroupSetBitsFromISR()必须要用到守护任务。

        从FREERTOS 原理图可以找到,这个函数,上面的Note中表示,必须要使能configUSE_TIMERS与INCLUDE_xTimerPendFunctionCall。如下两图所示。

设置USE_TIMERS

 设置

 

 5.步骤:

(1)创建事件标志

        根据FREERTOS的参考手册(上面也有API),创建的时候需要头文件#include "event_groups.h",自己创建一个事件标志句柄EventGroupHandle_t KeyEventGroup;如图所示。

#include "event_groups.h"
EventGroupHandle_t KeyEventGroup;

(2)在FREERTOS的init中创建事件标志组 

	//创建事件标志组KeyEventGroup = xEventGroupCreate();if(KeyEventGroup == NULL){printf("KeyEventGroup Create Error\r\n");}     

(3)事件标志组用在GPIO.c,声明为外部变量

extern EventGroupHandle_t KeyEventGroup;

(4)在gpio.c的值

#define KEY3_EVENT_BIT  (1<<0)
#define KEY4_EVENT_BIT  (1<<1)
#define KEY5_EVENT_BIT  (1<<2)
#define KEY6_EVENT_BIT  (1<<3) 

(5)在GPIO.c中的中断回调函数,按下就Set指定位。

//按键3if(Key3_Pin == GPIO_Pin){if(HAL_GPIO_ReadPin(Key3_GPIO_Port,Key3_Pin) == GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(Key3_GPIO_Port,Key3_Pin) == GPIO_PIN_RESET){xEventGroupSetBitsFromISR(KeyEventGroup,KEY3_EVENT_BIT,NULL);			}}}//按键4if(Key4_Pin == GPIO_Pin){if(HAL_GPIO_ReadPin(Key4_GPIO_Port,Key4_Pin) == GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(Key4_GPIO_Port,Key4_Pin) == GPIO_PIN_RESET){xEventGroupSetBitsFromISR(KeyEventGroup,KEY4_EVENT_BIT,NULL);			}}}//按键5if(Key5_Pin == GPIO_Pin){if(HAL_GPIO_ReadPin(Key5_GPIO_Port,Key5_Pin) == GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(Key5_GPIO_Port,Key5_Pin) == GPIO_PIN_RESET){xEventGroupSetBitsFromISR(KeyEventGroup,KEY5_EVENT_BIT,NULL);			}}}//按键6if(Key6_Pin == GPIO_Pin){if(HAL_GPIO_ReadPin(Key6_GPIO_Port,Key6_Pin) == GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(Key6_GPIO_Port,Key6_Pin) == GPIO_PIN_RESET){xEventGroupSetBitsFromISR(KeyEventGroup,KEY6_EVENT_BIT,NULL);					}}}

(6)低优先级设置

EventBits_t KeyEventBits;KeyEventBits = xEventGroupWaitBits(KeyEventGroup,KEY3_EVENT_BIT|KEY4_EVENT_BIT|KEY5_EVENT_BIT|KEY6_EVENT_BIT,pdFALSE,pdFALSE,portMAX_DELAY);printf("Key is Down Key Event Bit is %x\r\n",KeyEventBits);osDelay(10);

 (6)高优先级设置

EventBits_t KeyEventBits;KeyEventBits = xEventGroupWaitBits(KeyEventGroup,KEY3_EVENT_BIT|KEY4_EVENT_BIT|KEY5_EVENT_BIT|KEY6_EVENT_BIT,pdTRUE,pdTRUE,portMAX_DELAY);	if(KeyEventBits == (KEY3_EVENT_BIT|KEY4_EVENT_BIT|KEY5_EVENT_BIT|KEY6_EVENT_BIT)){printf("Buzzer is Toggle\r\n");HAL_GPIO_TogglePin(Buzzer_GPIO_Port,Buzzer_Pin);}
osDelay(10);

结果:

应该是:

key3,key4,key5,key6按钮都可以触发输出,蜂鸣器触发似乎是要全部按钮按下才会消除。

http://www.yayakq.cn/news/786787/

相关文章:

  • 做销售用什么网站好想做一个电影网站该怎么做
  • 佛山网站优化企业网站管理系统cms源码下载
  • 网站建设应用权限海南省城乡住房建设厅网站首页
  • 网站导航自适应专业刷单网站建设
  • 各大网站代下单怎么做中国互联网协会是什么单位
  • 淮南电商网站建设费用店铺设计网站推荐
  • asp网站转html怎样做站长建网站
  • 中学加强校园网站建设建设咖啡厅网站的意义
  • wordpress 自学网重庆旅游seo整站优化
  • 网站建设中左对齐网站建设与管理实践报告总结
  • 唐山长城网站建设做梯子的企业网站
  • 松阳建设网站装个宽带多少钱
  • 企业网站的总体设计dw怎么把代码做成网页
  • 济南响应式网站开发wordpress字段添加按钮
  • 网站优化哪家专业微信网站怎么做下载附件
  • 企业网站和域名的好处神经网络跟网络架构
  • 企业网站seo优化公司网站 科技感
  • iis网站服务器安全隐患新网站应该怎么做
  • 举报网站建设情况总结网站qq 微信分享怎么做
  • html 路径 网站根路径网络规划设计师教程第2版pdf下载
  • 怎么做网站教程 用的工具wordpress怎么设计主题
  • 网站开发一般流程wordpress 添加链接
  • 网站建设公司好吗优秀网站开发商
  • win7建网站教程杭州网络网站建设
  • 网站设计的分辨率做系统网站信息检索网站
  • 济南网站建设市场wordpress浏览统计
  • 做粘土网站wordpress商业模板
  • 做视频网站注意什么做服务器的网站都有哪些功能
  • 外贸网站开发推荐影楼修图用什么软件
  • 百度地图怎么放在网站上成品免费的视频软件有哪些好用点