一:简述

硬件为ESP-LAUNCHER开发板(使用GPIO12)。

要求是某一定时间指示灯状态发生改变。

ESP8266定时功能的实现有两种方式:软件定时器和硬件定时器。

软件定时器的接口在/ESP8266_NONOS_SDK/include/osapi.h中,由于软件定时器的任务可能被中断,或者被
其他⾼高优先级的任务延迟,所以若想获取准确的定时任务,可以选择硬件定时器,但是硬件定时器不能与PWM接口函数同时使用,因为两者共用一个硬件中断定时器。

二:软件定时器的使用

  • 首先,定义一个定时器的结构体。
  • 其次,先进行关闭定时器,因为对于同⼀个 timer,os_timer_arm 或 os_timer_arm_us 不能重复调⽤,必须先os_timer_disarm。
  • 再者,进行定时函数的回调。
  • 最后,开启定时器。
  • 程序:
static os_timer_t os_timer;//定义延时结构体void LED_INIT()
{uint32 i;PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);GPIO_DIS_OUTPUT(GPIO_ID_PIN(12));//设置IO13为输入i = ~GPIO_INPUT_GET(GPIO_ID_PIN(12));PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);//选择指示灯IO口GPIO_OUTPUT_SET(GPIO_ID_PIN(12),i);
}void  ICACHE_FLASH_ATTR user_init()//初始化
{uart_init(115200, 115200);//设置串口0和串口1的波特率PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);//选择指示灯IO口GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//默认指示灯不亮//软件延时函数练习os_timer_disarm (&os_timer);os_timer_setfn(&os_timer, (ETSTimerFunc *) (LED_INIT), NULL);os_timer_arm(&os_timer, 1000, true);

三:硬件定时器的使用

硬件中断定时器接口位于 /ESP8266_NONOS_SDK/examples/driver_lib/hw_timer.c中。

注意:硬件定时器的回调函数前不能添加 ICACHE_FLASH_ATTR 宏定义,中断响应不能存放在 Flash 中。

  • 首先,确定中断源以及是否重装。
  • 其次,确定定时器回调函数。
  • 最后,启动定时器。
  • 程序
void ICACHE_FLASH_ATTR user_init(void) {uart_init(57600, 57600);os_printf("SDK version:%s\n", system_get_sdk_version());PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//默认指示灯不亮hw_timer_init(NMI_SOURCE, 0);//初始化确定使用的中断源以及是否自动填装hw_timer_set_func(LED_INIT);hw_timer_arm(500);}

如有错误,请批评指正。

遛一遛8266的定时器相关推荐

  1. 【机器学习代码模板】把你的线性回归模型拉出来遛一遛

    前言 这是[机器学习代码模板]系列的第三篇文章,之后会持续更新,敬请关注! 与第上一篇文章相比增加的地方 将数据集划分为training_set和test_set 在training_set上训练模型 ...

  2. 【MicroPython ESP32/8266】定时器中断示例解析

    [MicroPython ESP32/8266]定时器中断示例解析 ✨本案例基于Thonny平台开发.✨ 相关篇<ESP32 Micropython 定时器中断的使用示例>

  3. 波士顿动力机器狗学会「撒尿」!拉风狗还不上街遛一遛?

    2021-04-14 15:57:20 来源:verge 编辑:yaxin [导读]波士顿动力机器狗又get一项新技能.近日,一位油管博主Michael Reeves利用自己的技术专长,把机器狗Spo ...

  4. 一款好玩的关联微信运动的云遛狗微信小程序

    一款好玩的关联微信运动的云遛狗微信小程序 superpet_dog 介绍 微信小程序搜索 "汪汪旺旺旺" 进行体验. ​ 使用微信小程序云开发技术,开发的一款好玩的小程序.关联微信 ...

  5. 2017 ACM/ICPC 南宁赛区小结 By JSB @ Reconquista

    Statistics TYPE: Onsite Contest NAME: 2017 - ICPC - Asia Nanning PLAT: pc^2 TIME: 2017/11/26 09:00-1 ...

  6. 架构师写的BUG,非比寻常

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 部门新来了个架构师,BAT背景,住在三环,开宝马上班,有车位. 小 ...

  7. 一只53万!波士顿动力网红机器狗开售,充电器价格1万多!

    白交 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI Oh my God-- 屡屡全球刷屏的网红,现在终于可以买回家. 波士顿动力机机器狗--那只可甜可咸.可宠可用的地球首富同款,万万没 ...

  8. 万字详文告诉你如何做 Code Review

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习实验室 前言 作为公司代码委员会 golang 分 ...

  9. 非科班的我如何自学Python在一线城市找到一份15k的offer的?

    大家好,我是PythonYu,今天是我kotlin入门后,入行Python后,第一次总结下自己的经验! 12年从三流大学毕业后,刚开始接触的是java,后来入门了kotlin,后来我学习了Python ...

最新文章

  1. DHCP Snooping的作用
  2. linux container容器技术框架性理解
  3. 百度网络推广介绍网站在更换老域名时都需注意哪些?
  4. ThreadLocal线程复用导致的安全问题
  5. stm32 web ajax,STM32的WEB服务器怎么返回AJAX的JSON数据格式的?求教!
  6. IDEA在debug环境下,端口被占用
  7. jenkins~集群分发功能的具体实现
  8. 祝福神器!微信推出“表情搜索”功能,支持合成个性化祝福表情
  9. Vivado Launching SDK Importing Hardware Specification error的解决方法
  10. 顾樵数学物理方法_圣彼得堡国立大学硕士研究生:物理与天文学
  11. vue获取屏幕高度赋值给div与获取div本身的高度
  12. windows 下 tomcat 开机自启动
  13. 百度为手游盛世添把火
  14. python查看bit_python 实现12bit灰度图像映射到8bit显示的方法
  15. python入门第三课(初中生学Python)
  16. Nginx的http_access_module模块
  17. 清空input的type为file时的值
  18. Vi编辑器的使用方法及用vi编辑器编写一个C程序
  19. 天线巴伦制作和原理_巴伦的原理、设计、制作
  20. js中公有方法、特权方法、静态方法

热门文章

  1. 一套靠谱的外贸型服装鞋业系统长啥样?
  2. Day19-22 2021/10/13-16 JAVA贪吃蛇 全注释版
  3. iOS开发之网络监听(一)Reachability
  4. plt的默认风格/样式设置 or 将plt.rcParams恢复恢复到默认参数设置
  5. Gradually Vanishing Bridge for Adversarial Domain Adaptation
  6. 基础乐理--增长音值的补充记号
  7. Leetcode——226. 翻转二叉树
  8. 客户端设置超时,max_fails失效----问题分析
  9. Zabbix6.2这些新特性太棒了,手把书教你在Linux部署Zabbix6.2,速度收藏!
  10. 多级表头 el-table-column的使用