arduinoesp8266定时器_ESP32 Arduino教程:定时器中断

本文的目的是解释如何使用Arduino内核在ESP32上配置计时器中断。

测试是在DFRobot的ESP-WROOM-32设备上进行的,该设备集成在ESP32 FireBeetle板上。

引言

本文主要解释在使用Arduino内核的ESP32

本教程将会介绍如何对定时器进行配置以周期性地产生中断,以及如何对中断进行处理。

有关外部中断的教程:ESP32 Arduino教程:外部中断 中已经见过这种计数器的用法,因为ISR应该尽可能快地运行,所以不应执行过长的操作(比如向串口写入数据)。因此,在实现中断处理代码时,最好让ISR仅对中断进行响应,然后把实际的处理(可能包含时间较长的操作)交给主循环来做。

[mw_shl_code=applescript,true]]portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;[/mw_shl_code]

设置函数

在设置函数中,首先需要打开一个串行连接,以便后面将程序结果输出到Arduino IDE串口监测器。

[mw_shl_code=applescript,true]

Serial.begin(115200);[/mw_shl_code]

然后,调用timerBegin函数以对定时器进行初始化,这个函数会返回一个指向hw_timer_t结构类型的指针,这个指针正是我们在上一节声明的定时器全局变量之一。

该函数有三个输入参数,分别是我们要使用的定时器编号(0到3,对应全部4个硬件定时器)、预分频器数值以及一个用于表示计数器向上(真)或向下(假)计数的标志。

在本例中,我们将使用第一个定时器,最后一个参数设

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值