定時任務(wù)調(diào)度器Ticker
Ticker可以讓你設(shè)置以固定時間間隔反復(fù)執(zhí)行某個任務(wù)照弥,相比上面的方法,使用Ticker時間上會更加精確,并且代碼編寫維護也更加方便颈走;
使用步驟
引入頭文件
#include <Ticker.h>;
建立Ticker對象;
編寫回調(diào)函數(shù)(同之前文章中的事件方法一樣咱士,這個回調(diào)函數(shù)中不推薦進行耗時操作)立由;
設(shè)置調(diào)度時間間隔并啟用調(diào)度任務(wù);
常用方法
//設(shè)置調(diào)度任務(wù)序厉,該任務(wù)會反復(fù)執(zhí)行锐膜,輸入?yún)?shù)分別為時間間隔(秒)、回調(diào)函數(shù)弛房、不大于四字節(jié)的數(shù)據(jù)
void attach(float seconds, callback_t callback)
void attach(float seconds, void (*callback)(TArg), TArg arg)
//設(shè)置調(diào)度任務(wù)道盏,該任務(wù)會反復(fù)執(zhí)行,輸入?yún)?shù)分別為時間間隔(毫秒)庭再、回調(diào)函數(shù)捞奕、不大于四字節(jié)的數(shù)據(jù)
void attach_ms(uint32_t milliseconds, callback_t callback)
void attach_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg)
//設(shè)置調(diào)度任務(wù),該任務(wù)只執(zhí)行一次拄轻,輸入?yún)?shù)分別為時間間隔(秒)颅围、回調(diào)函數(shù)、不大于四字節(jié)的數(shù)據(jù)
void once(float seconds, callback_t callback)
void once(float seconds, void (*callback)(TArg), TArg arg)
//設(shè)置調(diào)度任務(wù)恨搓,該任務(wù)只執(zhí)行一次院促,輸入?yún)?shù)分別為時間間隔(毫秒)、回調(diào)函數(shù)斧抱、不大于四字節(jié)的數(shù)據(jù)
void once_ms(uint32_t milliseconds, callback_t callback)
void once_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg)
//停止任務(wù)調(diào)度
void detach()
例子
#include <Ticker.h> //時間調(diào)度Ticker.h庫
Ticker ticker[5]; //聲明Ticker對象
void callback1() //回調(diào)函數(shù)
{
Serial.println("秒");
}
void setup() {
Serial.begin(115200);
delay(100);
ticker[0].attach(1, callback0);//參數(shù) 秒 回調(diào)
}
void loop() {
}