freeRTOS--软件定时器

一、什么是定时器:

简单可以理解为闹钟,到达指定一段时间后,就会响铃。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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于黄金正弦算法优化概率神经网络PNN的分类预测 - 附代码

基于黄金正弦算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于黄金正弦算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于黄金正弦优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

从0开始学习数据结构 C语言实现 1.前篇及二分查找算法

一、前篇 1、什么是数据结构? 数据结构是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系 2、时间复杂度与空间复杂度 大O符号是用于描述函数渐进行为的数学符号 常用函数的增长表 阶乘O(n!) > 指数…

基于蝠鲼觅食算法优化概率神经网络PNN的分类预测 - 附代码

基于蝠鲼觅食算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于蝠鲼觅食算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于蝠鲼觅食优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

Spring Boot 中使用 ResourceLoader 加载资源的完整示例

ResourceLoader 是 Spring 框架中用于加载资源的接口。它定义了一系列用于获取资源的方法,可以处理各种资源,包括类路径资源、文件系统资源、URL 资源等。 以下是 ResourceLoader 接口的主要方法: Resource getResource(String location)&am…

VSCode 运行java程序中文乱码

现象描述 java文件中包含中文,运行java程序后,乱码报错。 解决方法 原本运行指令为 cd "d:\programProjects\Java_proj\" ; if ($?) { javac Solution.java } ; if ($?) { java Solution } 需要添加 编码格式 -encoding utf8 cd &quo…

python数据处理作业6:随机生产一个服从正态分布长度为1000的数组,将这个数组划分为25个区间,画出数组的直方图和密度图

每日小语 我只有忘掉自己,才能津津有味地进行沉思和遐想。——卢梭 gpt代码 import numpy as np import matplotlib.pyplot as plt from scipy.stats import norm# 随机生成一个服从正态分布的长度为1000的数组 data np.random.randn(1000)# 划分为25个区间 num_…

【Linux】U盘安装的cfg引导文件配置

isolinux.cfg文件 default vesamenu.c32 timeout 600display boot.msg# Clear the screen when exiting the menu, instead of leaving the menu displayed. # For vesamenu, this means the graphical background is still displayed without # the menu itself for as long …

什么是好用的HR人才测评?

对于HR来说,选用一个合适的测评工具,我想不外乎以下几点: 1、成本可控 不是所有的HR都能申请到足够的资金,去做专业的人才测评,尤其是中小企业,这可是一笔不小 的开支。即使是基层普通岗位的成本&#xf…

redis运维(十一) python操作redis

一 python操作redis ① 安装pyredis redis常见错误 说明:由于redis服务器是5.0.8的,为了避免出现问题,默认最高版本的即可 --> 适配 ② 操作流程 核心:获取redis数据库连接对象 ③ Python 字符串前面加u,r,b的含义 原因: 字符串在…

视频一键转码:批量转换MP4视频的技巧

随着数字媒体设备的普及,视频文件在生活中扮演着越来越重要的角色。而在处理视频文件时,有时需要将其转换为不同的格式以适应不同的需求。其中,MP4格式因其通用性和高质量而备受青睐。本文详解云炫AI智剪如何一键转码的技巧,帮助批…

基础课6——开放领域对话系统架构

开放领域对话系统是指针对非特定领域或行业的对话系统,它可以与用户进行自由的对话,不受特定领域或行业的知识和规则的限制。开放领域对话系统需要具备更广泛的语言理解和生成能力,以便与用户进行自然、流畅的对话。 与垂直领域对话系统相比…

msvcp140.dll是什么东西以及如何解决其文件缺失问题

当我们在使用Windows电脑的过程中,有时候可能会遇到一些由于系统文件缺失或者损坏而导致的问题。其中,"msvcp140.dll缺失"就是一种常见的错误提示。msvcp140.dll究竟是什么?为什么它会缺失?又该如何解决这个问题呢&…

MIKE水动力笔记20_由dfs2网格文件提取dfs1断面序列文件

本文目录 前言Step 1 MIKE Zero工具箱Step 2 提取dfs1 前言 在MIKE中,dfs2是一个一个小格格的网格面的时间序列文件,dfs1是一条由多个点组成的线的时间序列文件。 如下两图: 本博文内容主要讲如何从dfs2网格文件中提取dfs1断面序列文件。 …

PaddleClas学习2——使用PPLCNet模型对车辆朝向进行识别(python)

使用PPLCNet模型对车辆朝向进行识别 1. 配置PaddlePaddle,PaddleClas环境2. 准备数据2.1 标注数据格式2.2 标注数据3. 模型训练3.1 修改配置文件3.2 训练、评估4 模型预测1. 配置PaddlePaddle,PaddleClas环境 安装:请先参考文档 环境准备 配置 PaddleClas 运行环境。 2. 准…

Unity Text文本首行缩进两个字符的方法

Text文本首行缩进两个字符的方法比较简单。通过代码把"\u3000\u3000"加到文本字符串前面即可。 参考如下代码: TMPtext1.text "\u3000\u3000" "这是一段有首行缩进的文本内容。\n这是第二行"; 运行效果如下图所示: 虽…

java入门,从CK导一部分数据到mysql

一、需求 需要从生产环境ck数据库导数据到mysql,数据量大约100w条记录。 二、处理步骤 1、这里的关键词是生产库,第二就是100w条记录。所以处理数据的时候就要遵守一定的规范。首先将原数据库表进行备份,或者将需要导出的数据建一张新的表了…

HarmonyOS 实现底部导航栏

该功能实现需要Tabs、TabsController、TabContent、Column等组件 Tabs相当于Android中的BottomNavigationView TabContent相当于Android中的fragment TabBuilder内相当于每个Item Entry Component struct Main {public tabsController : object new TabsController()State c…

让资产权利归于建设者:Kiosk使过程变得更简单

区块链凭借着其将人的权利地位置于平台之上的能力,可以重塑互联网,而自托管为个人提供了控制和管理其资产和数据的能力。链上交易支持建设者和客户之间的点对点交易。这些特质联合起来,可以将数字世界从基于价值提取的模式转变为基于价值创造…

IIC总线概述和通信时序代码详细图文解析

IIC总线 1 IIC总线概述 I2C总线两线制包括:串行数据SDA(Serial Data)、串行时钟SCL(Serial Clock)。总线必须由主机(通常为微控制器)控制,主机产生串行时钟(SCL&#x…

人工智能飞速发展的今天,IT行业能做些什么?

原创 | 文 BFT机器人 01 IT行业:信息流通的“媒介” IT行业作为一个信息化产业,通过运用信息手段和技术,为客户收集、整理、储存、传递信息情报,提供信息服务,并提供相应的信息手段、信息技术等服务。 近年来&#xf…