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

建设政府门户网站的意义有哪些超级优化

建设政府门户网站的意义有哪些,超级优化,css html可以做网站吗,web和wordpress一、概述 事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。与信号量不同的是,它可以实现一对多,多对多的同步。 即一个任务可以等待多个事件的发生&#xff1…

一、概述

        事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。与信号量不同的是,它可以实现一对多,多对多的同步。 即一个任务可以等待多个事件的发生:可以是任意一个事件发生时唤醒任务进行事件处理; 也可以是几个事件都发生后才唤醒任务进行事件处理。同样,也可以是多个任务同步多个事件。

        每一个事件组只需要很少的 RAM 空间来保存事件组的状态。事件组存储在一个 EventBits_t 类型的变量中,该变量在事件组结构体中定义。

如果宏configUSE_16_BIT_TICKS定义为1,那么变量uxEventBits就是16位的,其中有8个位用来存储事件组;而如果宏 configUSE_16_BIT_TICKS 定义为0,那么变量uxEventBits就是32位的, 其中有24个位用来存储事件组。

        在STM32中,我们一般将configUSE_16_BIT_TICKS定义为0,那么uxEventBits是32位的,有24个位用来实现事件标志组。每一位代表一个事件,任务通过“逻辑与”或“逻辑或”与一个或多个事件建立关联,形成一个事件组。

         例如,如果一个事件组的值是0x92(二进制1001 0010),那么只有事件位1、4和7被设置,因此只有由1、4和7表示的事件发生。下图显示了EventBits_t类型的变量,它设置了事件位1、4和7,并清除了所有其他事件位,使事件组的值为0x92。  

FreeRTOS 提供的事件具有如下 特点:
  • 事件只与任务相关联,事件相互独立,一个 32 位的事件集合(EventBits_t 类型的 变量,实际可用与表示事件的只有 24 位),用于标识该任务发生的事件类型,其中每一位表示一种事件类型(0 表示该事件类型未发生、1 表示该事件类型已经发生),一共 24 种事件类型。
  • 事件仅用于同步,不提供数据传输功能。
  • 事件无排队性,即多次向任务设置同一事件(如果任务还未来得及读走),等效于只设置一次。
  • 允许多个任务对同一事件进行读写操作。
  • 支持事件等待超时机制。

二、函数接口

1.事件标志组创建

include "event_groups.h"
EventGroupHandle_t xEventGroupCreate(void)参数说明:无
返回值:
成功-返回事件标志组的句柄。
失败-返回NULL。

2.事件标志组删除

void vEventGroupDelete( EventGroupHandle_t xEventGroup )参数说明:
- xEventGroup-事件标志组的句柄
返回值:无

3.事件标志组指定的位置位

EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet )参数说明:
- xEventGroup-事件标志组的句柄
- uxBitsToSet-指定事件中的事件标志位。
如设置uxBitsToSet为0x08(0000 1000)则只置位位3,
如果设置uxBitsToSet为0x09(0000 1001)则位3和位0都需要被置位。
返回值:
成功-返回调用xEventGroupSetBits()时事件组中的值。

4.在中断中执行事件标志组置位

BaseType_t xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, BaseType_t *pxHigherPriorityTaskWoken )参数说明:
- xEventGroup-事件标志组的句柄
- uxBitsToSet-指定事件中的事件标志位。如设置 uxBitsToSet为0x08则只置位位3,
如果设置 uxBitsToSet 为 0x09 则位3和位0都需要被置位。
- pxHigherPriorityTaskWoken在使用之前必须初始化成 pdFALSE。
如果API函数(即xEventGroupSetBitsFromISR)导致一个任务解锁,
并且解锁的任务优先级高于当前运行的任务,则API函数(即xEventGroupSetBitsFromISR)
将*pxHigherPriorityTaskWoken设置成pdTRUE,
在中断退出前,触发一次任务切换,可提高实时性;
若为pdFALSE,则在下一个时钟节拍才进行任务切换。
pxHigherPriorityTaskWoken 作为一个可选参数,可以设置为NULL。返回值:
成功-返回pdPASS。
失败-返回pdFAIL。

5.等待事件标志组

EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup, 
const EventBits_t uxBitsToWaitFor, 
const BaseType_t xClearOnExit, 
const BaseType_t xWaitForAllBits, 
TickType_t xTicksToWait )参数说明:
- xEventGroup-事件标志组的句柄
- uxBitsToWaitFor-一个按位或的值,指定需要等待事件组中的哪些位置 1。
如果需要等待 bit 0 and/or bit 2 那么 uxBitsToWaitFor 配置为 0x05(0101'b)。
- xClearOnExit-pdTRUE:当 xEventGroupWaitBits()等待到满足任务唤醒的事件时,
系统将清除由形参 uxBitsToWaitFor 指定的事件标志位。 
pdFALSE:不会清除由形参 uxBitsToWaitFor 指定的事件标志位。
- xWaitForAllBits-pdTRUE: 当形参uxBitsToWaitFor 指定的位都置位的时候,
xEventGroupWaitBits()才满足任务唤醒的条件,这也是“逻辑与” 等待事件,
并且在没有超时的情况下返回对应的事件标志位的值。 
pdFALSE:当形参 uxBitsToWaitFor-指定的位有其中任意一个置位的时候,
这也是常说的“逻辑或”等待事件,在没有超时的情况下 函数返回对应的事件标志位的值。
- xTicksToWait-最大超时时间,单位为系统节拍周期,常量 portTICK_PERIOD_MS 
用于辅助把时间转换成 MS,若一直等待,填写portMAX_DELAY。

6.事件标志组指定的位清零

EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear )参数说明:
- xEventGroup-事件标志组的句柄
- uxBitsToClear-指定事件组中的哪个位需要清除。
如设置 uxBitsToSet 为 0x08 则只清除位 3,
如果设置 uxBitsToSet 为 0x09 则位3和位0都需要被清除。返回值:
事件标志组还没有清除指定位之前的值。

7.在中断中执行事件标志组指定的位清零

BaseType_t xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, 
const EventBits_t uxBitsToClear )参数说明:
- xEventGroup-事件标志组的句柄
- uxBitsToClear-指定事件组中的哪个位需要清除。
如设置 uxBitsToSet 为 0x08 则只清除位 3,
如果设置 uxBitsToSet 为 0x09 则位3和位0都需要被清除。返回值:
成功-返回pdPASS。
失败-返回pdFAIL。

注意事项:

        若使用xEventGroupSetBitsFromISR、xEventGroupClearBitsFromISR等函数,官方要求3个宏定义生效,详细代码如下:

FreeRTOSConfig.h

#define configUSE_TRACE_FACILITY		1
#define configUSE_TIMERS			1

FreeRTOS.h

#ifndef INCLUDE_xTimerPendFunctionCall
#define INCLUDE_xTimerPendFunctionCall  1
#endif

三、示例代码

1、代码例子是,设置事件的逻辑与,逻辑或,来控制灯的状态。当逻辑与时,按键1和按键2按下灯1亮;当逻辑或时,按键1或按键2按下一个即可灯亮。

源码:

https://download.csdn.net/download/m0_63622771/90897003

http://www.dtcms.com/wzjs/124160.html

相关文章:

  • 重庆网站建设培训机构学费网络推广文案
  • 网站栏目关键词付费推广有几种方式
  • 泰顺做网站google seo实战教程
  • 网站建设代理开发科技企业服务长沙seo网络营销推广
  • 广东微信网站制作多少钱啥是网络推广
  • 做物流的网站都有什么风险谷歌浏览器下载手机版中文
  • 地图网站模板广告投放优化师
  • wordpress适合下载站的主题可以推广网站
  • 百度云wordpress怎么搭建网站51链
  • phpcms移动端网站怎么做搜索引擎优化的目的是
  • 做公众号app网站app吗兰州seo优化公司
  • 做网站优化如何遍文章网络营销成功案例
  • 网站备案查询到什么资料曹操论坛seo
  • 系部网站建设中期检查总结福建省人民政府门户网站
  • 页面好看的教育类网站模板如何在百度提交自己的网站
  • 软件公司网站建设乐事薯片软文推广
  • 怎么做网站首页关键词城市更新论坛破圈
  • 网站投票怎么做查询网址域名ip地址
  • 网站 页面 结构搜狗收录提交入口网址
  • 那里可以做工作室做网站搜狗收录提交入口
  • 苏州免费推广的网站海南百度推广公司有哪些
  • 百度网站建设工资用网站模板建站
  • 网站建设文化策划书上海seo推广方法
  • 网站做什么推广好昆明长尾词seo怎么优化
  • 汽车网站建设论文微博指数查询入口
  • 建网站知乎软文发布
  • 深圳网站运营网络营销的招聘信息
  • 网站流量指数网络推广精准营销推广
  • 我的免费网是个什么网站湖南网站设计
  • 党建方面做的最好的素材网站百度推广话术全流程