手册 11 、12章,605、625
ESP 定时器(高分辨率定时器) - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档
通用硬件定时器 (GPTimer) - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档
通用硬件定时器 = 定时器组???
系统定时器
系统定时器为全局定时器,两个 CPU 共享的。其内置两个 52 位计数器和三个 52 位比较器。
该定时器可用于生成操作系统所需的嘀嗒定时中断,也可用作普通定时器生成周期或单次中断。

通用硬件定时器 GPTimer
ESP32-S3 包含两个定时器组,即定时器组 0 和定时器组 1。每个定时器组有两个通用定时器和一个主系统看门狗定时器。

定时器结构,和 STM32 差不多:

16 位预分频寄存器,2~65536
54 位计数器,可递增或递减
支持重装载的比较器
基本使用
(1)创建和启动定时器
gptimer_handle_t gptimer = NULL; // 定时器句柄
gptimer_config_t timer_config = {
.clk_src = GPTIMER_CLK_SRC_DEFAULT, // 时钟源
.direction = GPTIMER_COUNT_UP, // 向上计数
.resolution_hz = 1 * 1000 * 1000, // 频率为 1 MHz,即 1 次滴答为 1 微秒
};
ESP_ERROR_CHECK(gptimer_new_timer(&timer_config, &gptimer)); // 创建定时器实例
ESP_ERROR_CHECK(gptimer_enable(gptimer)); // 使能定时器
ESP_ERROR_CHECK(gptimer_start(gptimer)); // 启动定时器(2)停止和释放定时器
gptimer_stop
gptimer_disable
gptimer_delete_timer(3)设置/获取计数值