freeRTOS--软件定时器

news2024/11/25 14:55:49

一、什么是定时器:

简单可以理解为闹钟,到达指定一段时间后,就会响铃。STM32 芯片自带硬件定时器,精度较高、达到定时时间后会触发中断,也可以生成 PWM 、输入捕获、输出比较,等等,功能强大,但是由于硬件的限制,个数有限。
软件定时器也可以实现定时功能,达到定时时间后可调用回调函数,可以在回调函数里处理信息。
软件定时器的优缺点:
优点:
1. 简单、成本低;
2. 只要内存足够,可创建多个;
缺点:
精度较低,容易受中断影响。在大多数情况下够用,但对于精度要求比较高的场合不建议使用。
软件定时器原理:
定时器是一个可选的、不属于 FreeRTOS 内核的功能,它是由定时器服务任务来提供的。
在调用函数 vTaskStartScheduler() 开启任务调度器的时候,会创建一个用于管理软件定时器任务,这个任务就叫做软件定时器服务任务。
1. 负责软件定时器超时的逻辑判断
2. 调用超时软件定时器的超时回调函数
3. 处理软件定时器命令队列
FreeRTOS 提供了很多定时器有关的 API 函数,这些 API 函数大多都使用 FreeRTOS 的队列发送命令给 定时器服务任务。这个队列叫做定时器命令队列 。定时器命令队列是提供给 FreeRTOS 的软件定时 器使用的,用户不能直接访问。
1.创建软件定时器
TimerHandle_t xTimerCreate
( const char * const pcTimerName ,
const TickType_t xTimerPeriod ,
const UBaseType_t uxAutoReload ,
void * const pvTimerID ,
TimerCallbackFunction_t pxCallbackFunction );

 2.开启软件定时器

BaseType_t xTimerStart ( TimerHandle_t xTimer ,
TickType_t xBlockTime );

 3.停止软件定时器

BaseType_t xTimerStop ( TimerHandle_t xTimer ,
TickType_t xBlockTime );

 4.复位软件定时器

BaseType_t xTimerReset ( TimerHandle_t xTimer ,
TickType_t xBlockTime );

 

 5.更改软件定时器定时时间

BaseType_t xTimerChangePeriod ( TimerHandle_t xTimer ,
TickType_t xNewPeriod ,
TickType_t xBlockTime );

 xNewPeriod:新的定时超时时间,单位:系统时钟节拍。其余参数与返回值同上。

二、实验

需求:

创建两个定时器:

定时器1:周期定时器,每1秒打印一次 shuaige

定时器2:单次定时器,启动2秒打印一次meinv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1219710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32GPIO——上拉下拉电阻、施密特触发器、P-MOS/N-MOS管

图1和图2 两种版本的GPIO基本结构图 如上两个图所示,标号2都为上拉、下拉电阻部分,阻值约为30k~50k欧,通过对应开关进行控制,开关由寄存器控制。 当引脚外部的器件没有干扰引脚的电压时,即没有外部的上、下拉电压&a…

springboot 2.1.0.RELEASE 项目加入swagger接口文档

Release v2.1.0.RELEASE spring-projects/spring-boot GitHub springboot 2.1.0.RELEASE发行日期是2018年10月30日(Oct 30, 2018) 不要使用过高的swagger版本,如SpringFox Boot Starter 3.0.0,否则报错: spring-…

Java学习之路 —— 多线程

文章目录 1. 线程创建方式1.1 继承Thread1.2 声明一个实现Runnable接口的类1.3 利用Callable接口、FutureTask类来实现 2. 线程同步2.1 同步代码块2.2 同步方法2.3 Lock锁 3. 线程同步4. 线程池 1. 线程创建方式 1.1 继承Thread 定义子类,继承Thread,创…

Vue指令修饰符、v-bind、v-model、computed计算属性、watch侦听器

前言 持续学习总结输出中,Vue指令修饰符、v-bind、v-model、computed计算属性、watch侦听器 一、指令修饰符 1.什么是指令修饰符? 所谓指令修饰符就是通过“.”指明一些指令后缀 ,不同的后缀封装了不同的处理操作 —> 简化代码 2.按键…

玩具、儿童用品、儿童服装上亚马逊TEMU平台CPC认证办理

CPC认证是Childrens Product Certificate的简称,即儿童产品证书。它是美国强制性法规CPSIA要求的一部分,该法规主要针对12岁及以下儿童使用的产品,如玩具、儿童用品、儿童服装等。 一、儿童小汽车CPC测试项目可能会因产品标准和法规的不同而…

开关电源测试之输出暂态响应测试标准及方法详解

暂态响应是指在接收到输入信号后,输出信号在短时间内产生的变化。开关电源输出暂态响应测试是为了检测输出负载快速变化时,输出电压跟随变动的稳定性。 开关电源输出暂态响应怎么测试? 测试目的:测试S.M.P.S.输出负载快速变化时&a…

中小型企业内网搭建

某中小型公司客户提出网络比较单一整体都在一个大的广播域中,AP无线的SSID有很多个,包括一些小的无线路由器散发出来的信号,用起来网络不太稳定,并且AP的SSID要分开,办公室只有单个SSID,不允许出现其他的&a…

【Ubuntu】设置永不息屏与安装 dconf-editor

方式一、GUI界面进行设置 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal打开 Ubuntu 桌面环境的设置菜单。你可以通过点击屏幕右上角的系统菜单,然后选择设置。在设置菜单中,…

休闲机动滑板车和便携式自行车ASTMF2641-23测试标准如何办理?

领先的行业资讯 近日,美国材料实验协会ASTM发布了2023版“休闲机动滑板车和便携式自行车的消费者安全规范” ASTM F2641-23,取代上一版本ASTM F2641-08 (2015)。 该规范是基于目前最先进的娱乐电动滑板车和迷你摩托车技术水平,旨在涵盖产品的…

Win10专业版如何重装-Win10专业版重装系统教程

Win10专业版如何重装?Win10专业版系统能够用户带来丰富的功能服务,用户操作需求轻松得到满足。如果我们在Win10专业版电脑中,遇到了系统问题,这时候可以考虑重新安装Win10专业版系统,从而解决系统出现的问题。下面小编…

全球温度数据下载

1.全球年平均温度下载https://www.ncei.noaa.gov/data/global-summary-of-the-year/archive/ 2.全球月平均气温下载https://www.ncei.noaa.gov/data/global-summary-of-the-month/archive/ 3.全球日平均气温下载https://www.ncei.noaa.gov/data/global-summary-of-the-day/ar…

Bard似乎在胡扯的路上飞速狂奔?

Bard似乎在胡扯的路上飞速狂奔?连最简单的问题都以胡扯来回答?

全网火爆,接口自动化测试框架-fixture函数使用,一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 setup和teardown能…

医疗项目的需求分析以及开发流程

一.项目的背景以及需求 1.项目背景 1.政策层面来看,近年来我国政府相关部门陆续颁发了支持数字医疗行业发展的相关政策,“互联网医疗”政策逐渐明确完善,为数字医疗行业发展提供支持,行业迎来政策福利期。 其次,从经济…

echarts 数据过多时展示滚动条

【echarts官网地址:Documentation - Apache ECharts】 针对echarts图数据过多的情况,echarts官网有专门的属性dataZoom:用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响…

超全整理,Pytest自动化测试框架-多进程(pytest-xdist)运行总结...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 平常我们功能测试…

在誉天学习华为认证,有真机吗

通过培训机构学习华为认证,特别是在HCIE的课程学习中,很多人关心的就是培训机构是否有真机能够进行华为认证的相关实验,今天我们一起来看看,在誉天学习华为认证,有真机吗? 誉天总部数据中心机房和誉天总部一…

获取微信小程序二维码

可直接通过微信扫描小程序二维码直接进入小程序,可用在分享推广业务。 目录 Curl请求方法 获取小程序token 获取小程序二维码 参数说明 注意 请求结果 Curl请求方法 需要请求微信小程序的API接口,封装好curl请求方法。 代码如下: /*…

西浦成立产业家学院破解 “产业级” 问题!AMT企源成首批合作机构

在推动高质量发展的国家战略背景下,从集成电路到人工智能,从新能源到绿色低碳,从健康养老到数字文创,无论国家还是区域都面临着产业转型升级或突破创新的发展需求, 这些 “产业级” 问题的难度远非单个企业层面问题可比…

C++泛型编程——模板(初识)

C泛型编程——模板(初识) 文章目录 C泛型编程——模板(初识)1. 泛型编程的概念2. 模板2.1 模板格式2.2 函数模板2.3 函数模板的实例化2.3.1 隐式(推演)实例化2.3.2 显式实例化 2.3 类模板3. 模板的本质 本章…