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() { }

天子骄龙

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. JavaScript 奇怪的代码

    错误代码: var input = document.getElementsByTagName("input"); for (var i=0; i<input.length; ...

  2. Oracle 笔记(二)

    Oracle的sql语言: Sql全称:struct query language 结构化查询语言 五大类: DDL:数据定义语言  create  alter  drop DQL:数据查询语言sel ...

  3. centos7.5 安装python3.7

    一,官网下载最新版python安装包 二,解压并编译安装 ,解决依赖关系 yum -y install epel-release libffi-devel zlib* ,解压编译 .tgz cd Py ...

  4. python基础-并发编程之I/O模型基础

    1. I/O模型介绍 1.1 I/O模型基础 更好的理解I/O模型,需要先回顾:同步.异步.阻塞.非阻塞 同步:执行完代码后,原地等待,直至出现结果 异步:执行完代码后,不等待,继续执行其他事务(常与 ...

  5. vue--生命周期演示

    vue实例的生命周期:https://cn.vuejs.org/v2/guide/instance.html#%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA-Vue-%E5% ...

  6. python 并发编程 同步调用和异步调用 回调函数

    提交任务的两张方式: 1.同步调用 2.异步调用 同步调用:提交完任务后,就在原地等待任务执行完后,拿到结果,再执行下一行代码 同步调用,导致程序串行执行 from concurrent.future ...

  7. CSS基本样式-背景属性

    代码是敲出来的,建议一个一个过一遍 背景属性 背景颜色 background-color 背景颜色 默认值是transparent(透明的) 示例代码 <!DOCTYPE html> &l ...

  8. urllib:处理网络异常

    from urllib import request, error import ssl import urllib.request import socket import urllib.error ...

  9. HDU-5201 The Monkey King

    题目描述 \(m\)个猴子分\(n\)个桃,要求第一个猴子的桃数严格大于其他猴子,问有多少种分法对\(1e9+7取模(\%1e9+7)\) Input \(1≤T≤25 ,1≤n,m≤100000\) ...

  10. $Prufer$序列

    \(Prufer\)序列 \(Prufer\)序列与树的相互转换: 树->\(Prufer\)序列 找到一个编号最小的叶子结点,把这个点删掉并且把跟他连着的那个点的编号加入\(Prufer\)序 ...