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 = ;
void flip() { //回调函数
int state = digitalRead(LED_BUILTIN);
digitalWrite(LED_BUILTIN, !state);
++count;
if (count == ) {
flipper.attach(0.1, flip); //每隔0.1秒执行一次回调函数
}
else if (count == ) {
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(, setPin, );//每隔25毫秒调用一次回调函数--带参数
tickerSetHigh.attach_ms(, setPin, );
} void loop() { }

天子骄龙

最新文章

  1. VS2013中web项目中自动生成的ASP.NET Identity代码思考
  2. 企业架构(Enterprise Architecture)
  3. Qt之控件美化
  4. (转)8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset
  5. BZOJ 2456: mode 水题
  6. oracle 直接客户端使用
  7. 使用Hamcrest增强JUnit的测试能力
  8. hdu Jungle Roads(最小生成树)
  9. C#将Word,Excel与Html,PDF互转
  10. Java 调用Azure认知服务Demo--Computer API
  11. js数组去重排序(封装方法)
  12. react图工具集成
  13. 1.YAF 的安装
  14. java----堆区、方法区和栈区
  15. 第26月第13天 hibernate导包
  16. Update openssh7.9 on centos6
  17. 加密与解密md5 3des
  18. Makefile 中符合的使用
  19. Ubuntu下安装Golang并测试HelloWorld
  20. spring boot mybatis sql打印到控制台

热门文章

  1. MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)
  2. Java servlet和JSP的区别和联系
  3. 盒模型 box-sizing 属性
  4. java锁机制的面试题
  5. CSS进阶学习
  6. 2D轮播图
  7. vue2.X + HTML5 plus 拍照和调用设备相册 另附 图片转base64和压缩图片方法
  8. Sqlserver 2012附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
  9. Spring(一)--Spring简介
  10. 开启linux服务器防火墙