本文章借鉴于太极创客团队,以表感谢。

使用Ticker库函数可以轻松实现定时器。

一、Ticker库的几个函数

#include <Ticker.h>Ticker ticker;// 建立Ticker用于实现定时功能ticker.attach(1, sayHi);//每隔一秒钟调用sayHi函数一次,attach函数的第一个参数// 是控制定时间隔的变量,该参数的单位为秒。第二个参数是// 定时执行的函数名称。ticker.detach();  // 使用detach来停止ticker对象定时调用函数ticker.attach(1, sayHi, 8);//这里有3个参数,其中第三个参数就是向定时调用的sayHi函数所传递的参数ticker.attach_ms(100, sayHi)//每隔100ms钟调用sayHi函数一次

二、一个简单的例子,其中包括了定时和外部触发

#include <Ticker.h>Ticker ticker;
Ticker buttonTicker;int count;void setup()
{Serial.begin(9600);pinMode(LED_BUILTIN, OUTPUT);pinMode(D3, INPUT_PULLUP);ticker.attach(1, sayHi, 60);buttonTicker.attach_ms(100, buttonCheck);
}void loop()
{for (int fadeValue = 0 ; fadeValue <= 1023; fadeValue += 5) {analogWrite(LED_BUILTIN, fadeValue);delay(10);}for (int fadeValue = 1023 ; fadeValue >= 0; fadeValue -= 5){analogWrite(LED_BUILTIN, fadeValue);delay(10);}delay(3000);
}void sayHi(int hiTimes){count++;Serial.print("Hi ");Serial.println(count);if (count >= hiTimes) {ticker.detach();Serial.print("ticker.detach();");}
}void buttonCheck()
{if (digitalRead(D3) == LOW){Serial.println("D3 Button Pushed...");}
}

三、注意事项

Ticker定时调用的函数必须要“短小精悍”。比如以上一系列的示例程序中,我们仅仅让Ticker定时调用函数执行简单的串口数据输出,以及很基本的运算。事实上,在使用Ticker库时,定时调用函数必须要很快的执行完毕。否则会产生难以预料的问题。

解决方法:创建一个count变量放在Ticker函数里自加或自减,当计数变量count达到我们需要的数值后,则让Ardunio执行较为复杂的函数。完美解决。

Ardunio库Ticker库基本操作(定时器函数)相关推荐

  1. NodeMcu arduino ESP8266 使用Ticker库(多任务处理)

    NodeMcu arduino ESP8266 本文章学习借鉴于太极创客团队,以表感谢.官网http://www.taichi-maker.com/ ESP8266 使用Ticker库(多任务处理) ...

  2. ESP8266多任务处理---Ticker库

    ESP8266多任务处理-Ticker库 ESP8266在运行过程中,只能一条线式的依次执行任务.但是我们在开发物联网项目时,可能需要ESP8266在执行某一任务的过程中,还能处理其它任务.比如,我们 ...

  3. 【ESP32_8266_WiFi (十四)】ESP8266多任务处理 – Ticker库使用说明

    文章目录 ESP8266多任务处理 – Ticker库使用说明 1 Ticker库基本操作 2 停止定时执行函数 3 向定时调用函数传递参数 4 利用多个Ticker对象让ESP8266处理多任务 5 ...

  4. PlatformIO使用Arduino[Ticker]库(ESP8266)

    在<PlatformIO如何编译Arduino程序(ESP8266)>一文中,我们是使用delay()函数来延时,让LED灯闪烁,但因为delay()函数的使用会阻塞主程序的执行,所以,一 ...

  5. python numpy库安装-Python Numpy库安装与基本操作示例

    本文实例讲述了Python Numpy库安装与基本操作.分享给大家供大家参考,具体如下: 概述 NumPy(Numeric Python)扩展包提供了数组功能,以及对数据进行快速处理的函数. NumP ...

  6. hal库选择滴答时钟函数_STM32入门 : HAL库、标准外设库、LL库

      国内使用STM32 单片机的人很多,ST 为开发者提供了非常方便的开发库:有标准外设库(SPL 库).HAL 库.LL 库 三种.前者是ST的老库,后两者是ST现在主推的开发库,其中 LL 库是 ...

  7. 【STM32】HAL库 STM32CubeMX教程六----定时器中断

    前言: 今天我们来学习定时器,32的定时器有着非常丰富的功能, 输入捕获/输出比较,PWM,中断等等.是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将 ...

  8. 【读书笔记】【程序员的自我修养 -- 链接、装载与库(三)】函数调用与栈(this指针、返回值传递临时对象构建栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端

    文章目录 前言 介绍 内存 内存布局 栈与调用惯例 堆与内存管理 运行库 入口函数和程序初始化 C/C++运行库 运行库与多线程 C++全局构造与析构 fread 实现 系统调用与API 系统调用介绍 ...

  9. HAL库学STM32 关于定时器的几个问题

    编者按:路漫漫其修远兮,吾将上下而求索.这句从小学在"日积月累"模块背下来的话,是对屈原最深刻的印象了.昨晚又看了三毛的<撒哈拉的故事>,人生的最大的感动,左不过就是在 ...

最新文章

  1. 塞尔达amiibo_塞尔达荒野之息pC版(附带全Amiibo)安装教程,最无敌的游戏
  2. linux lua ide,mac os上开发lua用什么ide
  3. 超全的Go Http路由框架性能比较
  4. 中文字符串提交乱码的解决方法
  5. freamarker 模板中空格_高端商务公司介绍PPT模板
  6. 1489 蜥蜴和地下室
  7. nginx subrequest演示示例程序
  8. access游戏库不显示 ea_全球游戏公司营收一览:腾讯连续第六年霸榜
  9. 论文阅读笔记(十四)——基于大比例圈养大熊猫图像的大熊猫识别研究
  10. 基于SSM的房屋租赁系统
  11. ScrollView嵌套listview高度适应
  12. 双网卡同网段静态路由_非常实用的双网卡静态路由配置
  13. android otg dac,随身HiFi 安卓OTG功能在音频上的妙用
  14. 001 【Chrome】浏览器自带取色器
  15. 黑群DS3617xs 6.2.3套件中心无法添加第三方源/添加第三方源失败解决方案/群晖套件中心无效的位置解决
  16. python实现税后工资_Python实现扣除个人税后的工资计算器示例
  17. 2020面试准备之MySQL索引
  18. 移动APP测试中的功能与非功能测试
  19. 那一年,我进传销了……(作者亲身经历)
  20. mysql phpwind_PHPWind环境搭建(Linux)

热门文章

  1. 【网络】新华三H3C交换机 抓包|H3C交换机文档
  2. algorithm头文件用法
  3. 关于兴趣、教育、敬业 与 职业道德 ——读 金旭亮、时寒冰博文有感
  4. mysql varchar 主键_MySQL – 如何使用VARCHAR作为AUTO INCREMENT主键
  5. Cadence Allegro输出光绘文件(底片)方法图文教程及视频演示
  6. 通过HTTP API的 ddns 自动刷新
  7. 【优化求解】改进灰狼算法求解重油热解模型matlab源码
  8. ALevel物理例题解析(1)
  9. pd.read_csv用法
  10. 好久没有写文章了,真相把自己解决问题的方法都写下来,可是没时间。