ESP32以及ESP32C3的定时器学习

本文介绍了如何使用ESP32的定时器功能在ArduinoIDE中实现周期性中断控制LED亮灭,包括设置定时器、预分频、警报事件和自定义中断处理。教程还展示了如何调整定时器频率以实现不同周期的LED控制效果。

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

 

参考教程:ESP32 Timers & Timer Interrupt Tutorial (Arduino IDE) – DeepBlue

这个教程中有两个实验

1.通过定时器产生一个周期性的中断,来实现一个翻转信号控制一个LED的亮灭

2.通过定时器测量两个外部事件之间的时间。

ESP32 定时器

ESP32系列有4个硬件定时器,每个定时器是一个64位,向上/向下的计数器,并带有一个16位的分频器。ESP32C3只有2个定时器,每个定时器是54位。(对比STM32的定时器是16位的)同时ESP32的定时器在最后一个技术周期可以配置自动装载。

ESP32定时器功能描述

每个ESP32定时器都是使用APB时钟(一般是80MHz)作为基础时钟。这时钟可以被一个16位的分频器进行分频后作为 基本的tick 时间。这样我们就可以通过控制分频系数来实现不同的tick time。

16位的预分频器可以把APB_CLK除以2到65536的系数。如果设置为1或者2的话,系数位2.如果设置0的话,分频系数位65536;

ESP32 定时器告警生成

ESP32定时器可以触发警报事件,根据你的配置,决定定时器进行重载或者进行中断。当你保存在警报寄存器与当前寄存器的值相同的时候,就会触发警报。这个在接下来的项目中执行周期性的逻辑非常有用。

ESP32 定时器公式

我们将使用告警事件生成以及定时器的预分频器来实现所需的中断周期性。下面的定时器方程有 3 种特殊情况,分别是预分频器值 = 0、1 和 2 时。当 Prescaler=1or2 时,它将如下所示 [T外= 计

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值