arduino 时间调度 定时器 esp32

定时任务调度器Ticker

Ticker可以让你设置以固定时间间隔反复执行某个任务,相比上面的方法,使用Ticker时间上会更加精确,并且代码编写维护也更加方便;

使用步骤

引入头文件

#include <Ticker.h>;

建立Ticker对象;
编写回调函数(同之前文章中的事件方法一样,这个回调函数中不推荐进行耗时操作);
设置调度时间间隔并启用调度任务;

常用方法

//设置调度任务,该任务会反复执行,输入参数分别为时间间隔(秒)、回调函数、不大于四字节的数据
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()

例子

#include <Ticker.h> //时间调度Ticker.h库
Ticker ticker[5]; //声明Ticker对象




void callback1() //回调函数
{
  
    Serial.println("秒");
    
}

void setup() {
  Serial.begin(115200);
  delay(100);
  ticker[0].attach(1, callback0);//参数 秒 回调

}


void loop() {
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,455评论 0 9
  • 当和底层系统交互时,必须花费大量时间为任务做好准备。调用内核或者其他系统层需要切换上下文,这也是比在进程内部调用昂...
    坤坤同学阅读 1,794评论 0 16
  • GCD调度队列是执行任务的强大工具。调度队列允许您相对于调度者异步或者同步的执行任意代码块。您能够使用调度队列来执...
    坤坤同学阅读 6,698评论 1 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,350评论 0 3