定时任务调度器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() {
}
网友评论