
Ticker的功能非常簡單,就是規定時間后調用函數

總體上,根據功能可以把方法分為兩大類:
定時器管理方法;
定時器啟用方法;
detach() 停止定時器
active() 定時器是否工作
返回值 bool
void once(float seconds, callback_function_t callback); xx秒后只執行一次-----不帶參數
void once(float seconds, callback_function_t callback,TArg arg); xx秒后只執行一次-----帶參數
seconds 秒數
callback 回調函數
arg 是回調函數的參數
void once_ms(float seconds, callback_function_t callback) xx毫秒后只執行一次
void once_ms(float seconds, callback_function_t callback,TArg arg) xx毫秒后只執行一次
void attach(float seconds, callback_function_t callback); 每隔xx秒周期性執行
void attach(float seconds, callback_function_t callback,TArg arg); 每隔xx秒周期性執行
void attach_ms(float seconds, callback_function_t callback); 每隔xx毫秒周期性執行
void attach_ms(float seconds, callback_function_t callback,TArg arg); 每隔xx毫秒周期性執行
注意點:
不建議使用Ticker回調函數來阻塞IO操作(網絡、串口、文件);可以在Ticker回調函數中設置一個標記,在loop函數中檢測這個標記;
對於arg,必須是 char, short, int, float, void*, char* 之一;
例子一:---不帶參數
#include <Ticker.h> //導入定時器庫 Ticker flipper; //實例化定時器對象 int count = 0; void flip() { //回調函數 int state = digitalRead(LED_BUILTIN); digitalWrite(LED_BUILTIN, !state); ++count; if (count == 20) { flipper.attach(0.1, flip); //每隔0.1秒執行一次回調函數 } else if (count == 120) { flipper.detach(); } } void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); flipper.attach(0.5, flip);//每隔0.5秒執行一次回調函數 } void loop() { }
例子2-----帶參數
#include <Ticker.h> //導入定時器庫 Ticker tickerSetHigh; Ticker tickerSetLow; void setPin(int state) { //回調函數--帶參數 digitalWrite(LED_BUILTIN, state); } void setup() { pinMode(LED_BUILTIN, OUTPUT); tickerSetLow.attach_ms(25, setPin, 0);//每隔25毫秒調用一次回調函數--帶參數 tickerSetHigh.attach_ms(26, setPin, 1); } void loop() { }
天子驕龍