目录

一.简介

二.API

软件定时器功能开启

软件定时器的创建(动态创建)

软件定时器的启动

软件定时器的停止

三.代码实现

变量声明

软件定时器创建

启动软件定时器

回调函数实现

四.实验现象


一.简介

        FreeRTOS提供了定时器功能,是软件定时器,他的精度没有硬件定时器那么高,但是在硬件定时器不够的情况下处理一般任务足够了。

软件定时器主要分为两大类:单次定时器和周期定时器。

单次定时器:运行一个周期后会自动停止,若要再次启用须由软件启动定时器。

周期定时器:可周期执行的定时器。

二.API

软件定时器功能开启

在使用FreeRTOS的软件定时器的时候须先开启相关的宏,如下:

使能软件定时器:

设置软件定时器的优先级:

设置软件定时器队列深度:

设置软件定时器任务的堆栈大小:

软件定时器的创建(动态创建)

pcTimerName:软件定时器名字

xTimerPeriodInTicks:软件定时器周期

uxAutoReload:用于设置是周期定时器还是单次定时器

pvTimerID:软件定时器的ID,多个软件定时器的回调函数可以是一个,在回调函数中可以通过这个ID去判断执行不同的操作

pxCallbackFunction:回调函数

返回值:

NULL:软件定时器创建失败

其他值:软件定时器创建成功的句柄

软件定时器的启动

在创建完后必须手动启动软件定时器

xTimer:软件定时器句柄

xTicksToWait:阻塞时间,为0立即启动软件定时器

软件定时器的停止

xTimer:软件定时器句柄

xTicksToWait:阻塞时间,为0立即停止软件定时器

三.代码实现

变量声明

软件定时器创建

启动软件定时器

回调函数实现

四.实验现象

        可以看到单词软件定时器只运行一次,周期软件定时器周期运行,周期为1S。单次软件定时器再次运行需要手动调用定时器启动函数去启动它。

CAN解析工具免费下载:https://download.csdn.net/download/qq_45631231/91981307?spm=1001.2014.3001.5503

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐