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

Freertos----软件定时器

一、软件定时器概念

使用定时器跟使用手机闹钟是类似的:

  • 指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期(period)(时间)。
  • 指定类型,定时器有两种类型(是否自动重装载):
    • 一次性(One-shot timers): 这类定时器启动后,它的回调函数只会被调用一次; 可以手工再次启动它,但是不会自动启动它。我们下面的例子是使用一次性的
    • 自动加载定时器(Auto-reload timers ): 这类定时器启动后,时间到之后它会自动启动它; 这使得回调函数被周期性地调用。
  • 指定要做什么事,就是指定回调函数(回调函数

二、软件定时器函数

1 创建

TimerHandle_t xTimerCreate( const char * const pcTimerName, 
                            const TickType_t xTimerPeriodInTicks,
                            const UBaseType_t uxAutoReload,
                            void * const pvTimerID,
                            TimerCallbackFunction_t pxCallbackFunction );

2 删除

BaseType_t xTimerDelete( TimerHandle_t xTimer, TickType_t xTicksToWait );

3 启动/停止

BaseType_t xTimerStart( TimerHandle_t xTimer, TickType_t xTicksToWait );

BaseType_t xTimerStop( TimerHandle_t xTimer, TickType_t xTicksToWait );

4 修改周期

修改定时器的周期时,会使用新的周期重新计算它的超时时间。

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

三、软件定时器实例

我们使用软件定时器实现蜂鸣器发出不一样的声音。

1.首先创建定时器和回调函数

这里的回调函数是关闭定时器,也就是关闭PWM输出。

2.写好每次需要启动定时器的函数

3.调用,不同时间频率。不同条件下发出不同声音

http://www.xdnf.cn/news/117487.html

相关文章:

  • WPS右键菜单中“上传到云文档”消失,使用命令行注册解决
  • LeetCode-Hot100
  • 数据集-目标检测系列- F35 战斗机 检测数据集 F35 plane >> DataBall
  • 【安全扫描器原理】网络扫描算法
  • 【c++】【STL库】vector类详解
  • C语言基础(day0424)
  • Java基础系列-HashMap源码解析4-基本概念
  • 各种插值方法的Python实现
  • BERT BERT
  • 精益数据分析(21/126):剖析创业增长引擎与精益画布指标
  • 4.3 工具调用与外部系统集成:API调用、MCP(模型上下文协议)、A2A、数据库查询与信息检索的实现
  • 实战交易策略 篇十九:君山居士熊市交易策略
  • 如何自己电脑上部署DeepSeek,并且接口访问?
  • 摘要 | 李录在北大光华管理学院的演讲《价值投资》
  • express的介绍,简单使用
  • ES6 模块化 与 CommonJS 的核心概念解析
  • java 富文本转pdf
  • 《100天精通Python——基础篇 2025 第1天:从编程语言到计算机基础,开启你的学习之旅》
  • 数据仓库建设全解析!
  • 【动手学大模型开发】什么是大语言模型
  • Crawl4AI 部署安装及 n8n 调用,实现自动化工作流(保证好使)
  • Redis LRU策略深度解析
  • 深度理解spring——BeanFactory的实现
  • # 代码随想录算法训练营Day37 | Leetcode300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组
  • 民锋视角下的节奏判断与资金行为建模
  • 自动化测试常见面试题(上)
  • Oracle数据库巡检脚本
  • 怎么配置一个kubectl客户端访问多个k8s集群
  • MySQL 安装配置教程(含性能优化)
  • BY免费空间去掉?i=1