【详细】FreeRTOS软件定时器的内部机制
目录一.硬件定时器二.软件定时器结构体三.启动定时器四.读取定时器一.硬件定时器每一个tick计数值加1.二.软件定时器结构体const char * pcTimerName定时器的文本名称ListItem_t xTimerListItem记载软件定时器的列表TickType_t xTimerPeriodInTicks定时器的周期或超时时间void * pvTimerID定时器IDTimerCallbackFunction_t pxCallbackFunction定时器到期时将要调用的回调函数指针uint8_t ucStatus; 定时器的状态位掩码三.启动定时器1.先创建一个xMessage结构体并赋值2.把这个结构体写入xTimerQueue队列中正因为有了这个等待时间ListItem_t xTimerListItem才起到了作用这时候就和写队列的操作一样时间到了超时返回时间未到放入链表阻塞并等待被唤醒。还有一个问题这个队列是何时创建的呢四.读取定时器1.谁来读取呢调度器创建的Timer Task这个任务的作用prvGetNextExpireTime作用查询当前定时器列表找出下一个即将到期的定时器的到期时间以系统节拍计数值表示。prvProcessTimerOrBlockTask作用根据定时器到期时间决定行为如果有定时器到期了即系统节拍计数已达到或超过 xNextExpireTime则处理该到期定时器调用其注册的回调函数 pxCallbackFunction如果是周期定时器重新计算下次到期时间并将其插回定时器列表。如果定时器列表为空xListWasEmpty pdTRUE则将定时器服务任务无限阻塞直到命令队列收到新命令例如启动某个定时器。否则有定时器但尚未到期将任务阻塞直到最近的一个定时器到期时间到达或命令队列收到命令两者中较早者唤醒任务。prvProcessReceivedCommands作用处理定时器命令队列Timer Command Queue中积累的所有命令。这些命令由其他任务或中断通过 API 发送例如xTimerStart / xTimerStop启动/停止定时器xTimerChangePeriod改变定时器周期、xTimerReset重置定时器、创建/删除定时器等该函数会依次取出命令并对目标定时器控制块xTIMER执行相应操作插入/移除列表、修改周期、调用回调等。创造不易多加支持点赞!

相关新闻

【LLM】深入理解FFN

【LLM】深入理解FFN

为什么要: 4096 ↓ 11008 ↓ 4096为什么不是: 4096 ↓ 4096为什么: GeLU? 为什么: SiLU? 为什么: SwiGLU? 一、如果没有 FFN,会发生什么? 假设Transformer 没有 FFN,只有: Token│ Attention│ Attention│ Attention会发生什么? 我们知道,Attention 负…

2026/10/19 23:50:50 阅读更多 →
3步掌握Reloaded-II:告别游戏模组冲突的终极解决方案

3步掌握Reloaded-II:告别游戏模组冲突的终极解决方案

3步掌握Reloaded-II:告别游戏模组冲突的终极解决方案 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II 还在为游戏模组安装繁琐、频繁…

2026/10/19 18:57:55 阅读更多 →
JavaSE 基础语法 - 方法的使用 - ①

JavaSE 基础语法 - 方法的使用 - ①

在实际开发中,一个完整的程序往往由成千上万个方法组成。 例如,我们每天使用的微信、支付宝、淘宝等应用,每点击一个按钮、发送一条消息、完成一次支付,背后都会调用不同的方法来完成相应的功能。 那么,什么是方法&…

2026/10/18 13:12:48 阅读更多 →

最新新闻

光波导本征模计算:有限差分法MATLAB实战与β传播常数提取

光波导本征模计算:有限差分法MATLAB实战与β传播常数提取

简介:本资源是一套面向本科及硕士阶段电磁场与光波导教学研究的MATLAB实践工具包,聚焦于光波导中电磁本征模求解与传播常数计算这一核心问题,采用数值稳定、工程适用性强的有限差分法实现。压缩包共30个文件,含25个核心MATLAB函数…

2026/10/20 13:15:07 阅读更多 →
RNN文本分类实战:低资源场景下的完整指南与调参经验

RNN文本分类实战:低资源场景下的完整指南与调参经验

前阵子接手一个短文本分类任务:只有几千条打标数据、没有GPU资源、还要求尽快跑出一个能用的基线模型。第一反应当然是上预训练语言模型,但权衡了部署成本和推理速度之后,反而把目光落回了“老熟人”RNN上。说实话,很多新入行的同…

2026/10/20 13:15:07 阅读更多 →
NUCLEO-L432KC点灯工程全解析:GPIO控制与LED闪烁实践

NUCLEO-L432KC点灯工程全解析:GPIO控制与LED闪烁实践

简介:这是一份基于STM32L432KC微控制器与NUCLEO-L432KC开发板的LED控制演示工程,重点展示GPIO通用输入输出接口的配置和驱动方法,面向嵌入式入门开发者及需要快速上手STM32L4系列的工程师。压缩包共1101个文件,大小40.17MB&#x…

2026/10/20 13:15:07 阅读更多 →
Kubernetes离线手动搭建实战:从环境准备到Calico网络联调

Kubernetes离线手动搭建实战:从环境准备到Calico网络联调

1. 整体思路与部署架构选型1.1 为什么选择离线手动搭建先聊一个大家都会遇到的问题:学习K8S到底应该从哪里入手?很多人第一反应是装个minikube或者kind,一条命令拉起来,kubectl get nodes能看到一个Ready的节点,就觉得…

2026/10/20 13:15:07 阅读更多 →
WorkBuddy Skill机制:技能生命周期管理从存放到维护的完整实践

WorkBuddy Skill机制:技能生命周期管理从存放到维护的完整实践

当你在设计一套像WorkBuddy这样的智能工作台时,Skill机制从来不是“注册几个函数”那么简单。我第一次搭这套东西时也以为把技能入口挂到一张表上就完事,结果技能多了之后,光是对外表现不一致、加载顺序错乱、更新后无法回滚这几个问题&#…

2026/10/20 13:15:07 阅读更多 →
用原理图设计FPGA电子琴:分频表驱动蜂鸣器音乐

用原理图设计FPGA电子琴:分频表驱动蜂鸣器音乐

简介:通过Quartus原理图设计方法实现的电子琴FPGA工程包,面向数字电路、EDA与FPGA入门学习者,演示从音符频率生成、定时计数、数模转换到乐曲存储与播放的完整音乐合成系统。资源共413个文件,压缩包5.42MB,主要包含原理…

2026/10/20 13:14:06 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →