本文章 来自原创专栏《ESP32教学专栏 (基于ESP-IDF)》,讲解如何使用 ESP-IDF 构建 ESP32 程序,发布文章并会持续为已发布文章添加新内容! 每篇文章都经过了精打细磨!
↓↓↓通过下方对话框进入专栏目录页↓↓↓
CSDN 请求进入目录 _ O x
是否进入ESP32教学导航(基于ESP-IDF)?
确定
文章目录
高分辨率软件定时器(esp_imer)
1、为什么选择esp_timer定时器作为esp32首选软件定时器
尽管FreeRTOS提供软件计时器,但这些计时器有一些限制:
1、最大分辨率等于RTOS滴答周期
2、FreeRTOS的定时器回调来自于一个低优先级的任务。
硬件计时器不受这两种限制的限制,但它们通常使用起来不太方便。【见我的上一篇文章】例如,应用程序组件可能需要计时器事件在将来的特定时间触发,但是硬件计时器只包含一个用于产生中断的“比较”值。这意味着需要在硬件计时器之上构建一些工具来管理可以释放的挂起事件列表.
2、esp_timer定时器两种工作方式
【1】单次模式
【2】周期模式
参考经典8051单片机之一 STC89C52 的Timer0和Timer1
3、使用esp_timer定时器(头文件esp_timer.h)
引用头文件esp_timer.h
#include "esp_timer.h"
【1】创建定时器对象
再创建定时器对象之前,我们应该先初始化esp_timer的API。方法是调用库函数esp_err_tesp_timer_init(void)
之后使用函数esp_timer_create
创建定时器对象