5-1-基于Arduino的定时器库函数
定时器基本概念
定时和计数在本质上是一个概念,定时是从时间的角度出发,计数则是从数量的角度出发。定时器和计数器本质上都是计数器,定时器只是计数器的一种特例,专门用于对周期信号计数。
基于Arduino的Timer定时器概述
- ESP32提供2个硬件定时器组,每组有2个硬件通用定时器,即ESP32芯片内置4个硬件通用定时器,分别对应序号:0、1、2、3。
- 每个定时器包含1个16位预分频器和1个64位可自动重载向上/向下计数器。
- ESP32的计数基频为80MHz预分配系数为80可得到1MHz的计数信号,每个计数信号的周期为1us,即每个计数单位1us。
- 定时器的初始化流程
- 初始化一个定时器对象:
timerBegin()
,返回hw_timer_t
类型的定时器对象。 - 设置定时器中断:
timerAttachlnterrupt()
。 - 配置定时器参数:
timerAlarmWrite()
- 使能开启定时器:
timerAlarmEnable()
- 初始化一个定时器对象:
- 定时器中断回调函数的设计