RTOS 时间管理篇- 软定时器 esp_timer 的使用

本文详细介绍了 ESP-IDF 中的 esp_timer 软定时器,它提供了微秒级别的精度和 64 位的最大计时值。与 FreeRTOS 的 xTimer 相比,esp_timer 允许在任务或中断中调用回调,具有更高的分辨率,但需要注意回调函数应尽量简洁以避免影响其他任务。内容包括 esp_timer 的运作机制、API、应用场景及其与 xTimer 的区别。

RTOS 时间管理篇- 软定时器 esp_timer 的使用

概述

RTOS 中提供了软定时器 xTimer,但该软件定时器存在一些缺点:

1) 最大分辨率(最小定时精度)等于RTOS 的 SysTick。

2)其定时器回调函数是从低优先级任务 TimerTask 中被调用的。

esp_timer 是 ESP-IDF 中实现的软件定时器,提供微秒级别的时间分辨率和 64bit 的最大计时数值。

软件定时器 esp_timer 的运作机制

esp_timer 与前述 RTOS 提供的 xTimer 软定时器类似,其提供单次和周期定时器功能。不同的是,xTimer 的回调只能在任务中被调用,而 esp_timer 的回调可以在 task 或者 中断 ISR 中被调用。

1)esp_timer 的回调函数默认从高优先级(默认优先级为 22)的 esp_timer task 中调度。由于所有回调都是在同一个任务中被执行的,因此建议只从回调本身执行尽可能少的工作量,而使用队列将事件发送到较低优先级的任务。如果其他优先级高于 esp_timer task 的任务正在运行,则定时器回调函数将被延迟,直到 esp_time

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值