arduino 时间调度 定时器 esp32

定时任务调度器Ticker

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

使用步骤

引入头文件

#include ;

建立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 ticker[5]; //声明Ticker对象




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

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

}


void loop() {
}

你可能感兴趣的:(arduino 时间调度 定时器 esp32)