ESP8266 NONOS SDK人门——软件延时

时间:2024-04-10 09:40:10

esp8266自带软件延时功能这里我们用软件延时方式实现led的亮灭
我们首先看乐鑫的NONOS API文档
ESP8266 NONOS SDK人门——软件延时所以若需要时间的精确定时,建议使用硬件定时器
软件延时的设置步骤
1.先定义一个定时器结构体和LED状态标志变量
ESP8266 NONOS SDK人门——软件延时2.写好回调函数,其内容为定时器溢出时所需要实现的功能
ESP8266 NONOS SDK人门——软件延时3.软件定时器初始化
ESP8266 NONOS SDK人门——软件延时
ESP8266 NONOS SDK人门——软件延时这个是软件定时器的设置API

os_timer_setfn 必须在 timer 未使能的情况下调⽤用,在 os_timer_arm 或 os_timer_arm_us 之前或者 os_timer_disarm 之后
所以先 os_timer_disarm 关闭定时器
设置os_timer_setfn 后就可以使能软件定时器
ESP8266 NONOS SDK人门——软件延时ESP8266 NONOS SDK人门——软件延时对于同⼀一个 timer,os_timer_arm 或 os_timer_arm_us 不不能重复调⽤用,必须先 os_timer_disarm。
这样软件定时器的init函数就写好了
使用us的定时器时在初始化软件定时器前一定先调用system_timer_reinit()重新初始化定时器
ESP8266 NONOS SDK人门——软件延时下面为我的代码部分

ESP8266 NONOS SDK人门——软件延时ESP8266 NONOS SDK人门——软件延时这里使用ms延时每2s led变化一次

注意:软件定时器除了system_timer_reinit API外
其他API均需要定时器结构体作为目标参数传入