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* 之一;

例子一:---不带参数

  1. #include <Ticker.h> //导入定时器库
  2. Ticker flipper; //实例化定时器对象
  3. int count = ;
  4. void flip() { //回调函数
  5. int state = digitalRead(LED_BUILTIN);
  6. digitalWrite(LED_BUILTIN, !state);
  7. ++count;
  8. if (count == ) {
  9. flipper.attach(0.1, flip); //每隔0.1秒执行一次回调函数
  10. }
  11. else if (count == ) {
  12. flipper.detach();
  13. }
  14. }
  15.  
  16. void setup() {
  17. pinMode(LED_BUILTIN, OUTPUT);
  18. digitalWrite(LED_BUILTIN, LOW);
  19. flipper.attach(0.5, flip);//每隔0.5秒执行一次回调函数
  20. }
  21. void loop() {
  22.  
  23. }

例子2-----带参数

  1. #include <Ticker.h> //导入定时器库
  2. Ticker tickerSetHigh;
  3. Ticker tickerSetLow;
  4. void setPin(int state) { //回调函数--带参数
  5. digitalWrite(LED_BUILTIN, state);
  6. }
  7.  
  8. void setup() {
  9. pinMode(LED_BUILTIN, OUTPUT);
  10. tickerSetLow.attach_ms(, setPin, );//每隔25毫秒调用一次回调函数--带参数
  11. tickerSetHigh.attach_ms(, setPin, );
  12. }
  13.  
  14. void loop() {
  15.  
  16. }

天子骄龙

ESP8266内置的定时器库--Ticker库的更多相关文章

  1. js课程 3-9 js内置对象定时器和超时器怎么使用

    js课程 3-9 js内置对象定时器和超时器怎么使用 一.总结 一句话总结:定时器:    1.定义    sobj=setInterval(func,1000);        2.清除    cl ...

  2. 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

    学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签.  jsp标签的分 ...

  3. Python爬虫学习:Python内置的爬虫模块urllib库

    urllib库 urllib库是Python中一个最基本的网络请求的库.它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据 urllib.request 在Python3的urllib库当 ...

  4. ESP8266开发之旅 基础篇⑥ Ticker——ESP8266定时库

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  5. esp8266烧录Html文件,实现内置网页控制设备!

    代码地址如下:http://www.demodashi.com/demo/14321.html 一.前言: 这个月也快结束了,时间真快,我服务器知识自学依然在路途中,这几天听到热点网页配置esp826 ...

  6. 转:EL表达式的11个内置对象

    原文地址:https://blog.csdn.net/qq_17045385/article/details/54799998 EL是JSP内置的表达式语言 JSP2.0开始,不让再使用Java脚本, ...

  7. Python3学习之路~3.3 内置函数

    Python内置函数表: 内置参数详解:https://docs.python.org/3/library/functions.html?highlight=built#ascii 用法: #Auth ...

  8. JSP标签:jsp内置标签、jstl标签、自定义标签

     一.jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签    1 ...

  9. Java第三方数据库连接池库-DBCP-C3P0-Tomcat内置连接池

    连接池原理 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去.我们可以通过设定连接池 ...

随机推荐

  1. 【HTML5】---【HTML5提供的一些新的标签用法以及和HTML 4的区别】

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(p ...

  2. Prometheus在Kubernetes下的服务发现机制

    Prometheus作为容器监控领域的事实标准,随着以Kubernetes为核心的云原生热潮的兴起,已经得到了广泛的应用部署.灵活的服务发现机制是Prometheus和Kubernetes两者得以连接 ...

  3. April.Util更新之权限

    目录 前言 权限 中间层 小结 前言 在之前已经提到过,公用类库Util已经开源,目的一是为了简化开发的工作量,毕竟有些常规的功能类库重复率还是挺高的,二是为了一起探讨学习软件开发,用的人越多问题也就 ...

  4. Python学习之表的数据类型

    数据类型 数值类型 类型 大小 范围(有符号) 范围(无符号)unsigned约束 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 ...

  5. NOIP2013提高问题求解T2(关于递推与递归)

    同步发表于我的洛谷博客. NOIP2013提高问题求解2: 现有一只青蛙,初始时在n号荷叶上.当它某一时刻在k号荷叶上时,下一时刻将等概率地随机跳到1,2,--,k号荷叶之一上,直到跳到第1号荷叶为止 ...

  6. 【嵌入式开发】Raspberry Pi 树莓派性能测试

    Raspberry Pi 树莓派性能测试 目录: CPU Linpack基准测试 源码 编译/运行 结果 Whetstone/Dhrystone综合基准测试 源码 编译/运行 结果 OpenSSL安全 ...

  7. ubuntu修改时间为北京时间

    ubuntu修改时间为北京时间 查看当前时区root@ubuntu:/# date -R修改时区root@ubuntu:/# tzselect复制文件到/etc目录下root@ubuntu:/# cp ...

  8. Hbase的几个关键问题(转自log.csdn.net/javastart/article/details/43772575)

    什么是HBase?何时用HBase?与Hive.Pig的区别?HBase的结构为何HBase速度很快?HBase常用的操作有哪些?HBase的一些配置和监控 什么是HBase? HBase,是Hado ...

  9. C++中多态的概念和意义

    1,函数重写回顾: 1,父类中被重写的函数依然会继承给子类: 2,子类中重写的函数将覆盖父类中的函数: 1,重写父类当中提供的函数是因为父类当中提供的这个函数版本不能满足我们的需求,因此我们要重写: ...

  10. 解决PHP上传文件、下载文件中由于文件过大导致的上传失败及下载不全问题

    用php+apache上传文件的时候,由于文件过大,容易导致上传失败, 解决办法:修改php.ini中:upload_max_filesize  2m  即允许上传文件大小的最大值.默认为2M ,大小 ...