ESP32 Arduino Ticker定时库
Ticker是ESP32 arduino的自带库,可以设置以固定时间间隔反复执行某个任务,特别适合以固定频率从传感器收集数据。
计时器本质上是一个计数器。让我们举一个简单的例子。如果给你一个可以从0到10计数的计数器,并且每次到达计数结束或溢出时都会给你一个中断,那么,只需调整计数的频率,你就可以得到准确的时间间隔。
常用方法
void attach(float seconds, callback_t callback)
void attach(float seconds, void (*callback)(TArg), TArg arg)
设置调度任务,该任务会反复执行,输入参数分别为时间间隔(秒)、回调函数、不大于四字节的数据;
void attach_ms(uint32_t milliseconds, callback_t callback)
void attach_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg)
设置调度任务,该任务会反复执行,输入参数分别为时间间隔(毫秒)、回调函数、不大于四字节的数据;
void once(float seconds, callback_t callback)
void once(float seconds, void (*callback)(TArg), TArg arg)
设置调度任务,该任务只执行一次,输入参数分别为时间间隔(秒)、回调函数、不大于四字节的数据;
void once_ms(uint32_t milliseconds, callback_t callback)
void once_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg)
设置调度任务,该任务只执行一次,输入参数分别为时间间隔(毫秒)、回调函数、不大于四字节的数据;
void detach()停止任务调度;
详见:https://github.com/espressif/arduino-esp32/blob/master/libraries/Ticker/src/Ticker.h
示例
#include <Ticker.h> //调用Ticker.h库Ticker ticker1; //声明Ticker对象
Ticker ticker2; //声明Ticker对象void callback1() //回调函数1
{Serial.print(millis());Serial.println(" 回调函数1已启用");
}void callback2() //回调函数2
{Serial.print(millis());Serial.println(" 回调函数2已启用");
}void setup()
{Serial.begin(115200);Serial.println();ticker1.attach(0.5, callback1); //每0.5秒调用callback1ticker2.once_ms(2000, callback2); //2000毫秒后调用一次callback2
}void loop()
{
}
程序仿真地址:https://wokwi.com/projects/334452637049029202
wokwi在线编程:https://wokwi.com/
参考链接:
- https://techtutorialsx.com/2021/08/07/esp32-ticker-library/
- https://blog.csdn.net/finedayforu/article/details/108464929
- https://blog.csdn.net/weixin_42880082/article/details/113861032
- http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-tips/ticker/
ESP32 Arduino Ticker定时库相关推荐
- ESP32 开发之旅③ Ticker——定时库
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... 快速导航 单片机菜鸟的博客快速索引(快速找到你 ...
- PlatformIO使用Arduino[Ticker]库(ESP8266)
在<PlatformIO如何编译Arduino程序(ESP8266)>一文中,我们是使用delay()函数来延时,让LED灯闪烁,但因为delay()函数的使用会阻塞主程序的执行,所以,一 ...
- ESP32 Arduino开发之路(2)— 使用PWM实现LED呼吸灯
ESP32 Arduino开发之路(2)- 使用PWM实现LED呼吸灯 一.前言 在ESP32上有一个LEDC外设模块专用于输出PWM波形,其介绍如下所示: 参考文章:在 ESP32 上使用 LEDC ...
- ESP32:使用TFT_eSPI库驱动TFT串口屏
目录 实验条件 软件部分 TFT_eSPI库的安装 配置文件 硬件部分 esp32 LCD串口屏 接线方式 实验部分 参考文章 本文使用 esp32结合 TFT_eSPI库点亮了一块 ILI9341驱 ...
- 0021 arduino iic i2c 实例讲解 TWI是什么 arduino 的 iic 库 i2c库 arduino Wire 库
目录 I2C介绍 TWI 介绍 arduino 的iic库 下一讲,具体例子 I2C介绍 I2C 是一种简单.双向二线制同步串行总线.它只需要两根线即可在连接于总线上的器件之间传送信息.简单说就是 只 ...
- ESP32+arduino智能浇水系统
一.ESP32+arduino智能浇水系统 随着人类居住条件的改善及对生态生活环境的关注,花卉养殖得到社会和人类个体的重视.这些具有生命特征的植物需 要科学合理的人工照顾.本研究提出了利用ESP WR ...
- ESP32 Arduino http协议digest认证 接入海康威视摄像机
注意:使用的是ArduinoHttpClient,与ESP32内部的HTTPClient库有较大的差别 海康摄像机http接入时候,由于没有认证信息,会返回401无权限信息,这时需要进行digest认 ...
- 服务器.esp文件,ESP32 Arduino教程:通过软接入点(soft AP)实现HTTP服务器-esp文件
在本ESP32(http://www.dfrobot.com.cn/goods-1359.html)教程中,我们将检查如何设置一个异步HTTP web服务器,该设备作为软访问点运行. 本ESP32教程 ...
- 手把手教你看懂并理解Arduino PID控制库——调参改变
2019独角兽企业重金招聘Python工程师标准>>> 引子 本文将分析<手把手教你看懂并理解Arduino PID控制库>中第三个问题:PID控制参数突变对系统的影响. ...
最新文章
- python对于办公有什么帮助-日常工作中python能够有哪些帮助?
- php 正则获取数字,php结合正则获取字符串中数字的几种方法
- c# 获取excel单元格公式结果_每日一Excel技巧(熟能生巧):带公式的单元格,快速批量复制、填充...
- Android Studio 小提示,新建Activity
- mysql 自增模式 auto,mysql(AUTO_INCREMENT)自增ID的起始值修改与设置
- 【最新合集】编译原理习题(含答案)_2程序设计语言及其文法_MOOC慕课 哈工大陈鄞
- 配置本地及网络yum源(详细步骤)
- 有没有查计算机组成的答案得,计算机组成答案.doc
- oracle 安装display,Linux安装Oracle 11时报错DISPLAY解决方案
- 微软公司等数据结构+算法面试100题2010版全部出炉
- 使用spring-data-jpa实现简单的两表联查
- 解析淘宝商城缘何更名“天猫”
- baacloud无法连接到_加入 Beta 版“Baacloud” - TestFlight - Apple
- 中国科学技术大学生物信息学考试复习资料(整理版)
- linux连接苹果鼠标,Linux 5.13添加对苹果Magic Mouse 2和微软SAM的支持
- 手绘与码绘————用代码表现出花瓣飞舞的效果
- 全球6G产业及政策进展研究
- 数据分析案例--2012美国总统竞选赞助数据分析
- 解决牛客网在线编程,本地编译结果正确,提交结果不正确问题!!!
- linux内核启动停止在booting the kernel.