中断
本文将演示如何使用 ESP8266 NodeMCU 的中断和定时器。 中断检测 GPIO 状态的变化且无需不断检查其当前值。通过使用中断,当检测到更改时,会触发事件(调用函数)。
在实例中,使用 PIR 运动传感器检测运动:当检测到运动时,ESP8266 会启动一个定时器并打开 LED 预定义的秒数。 当计时器完成倒计时,LED 会自动关闭。
1、ESP8266中断介绍
中断对于在微控制器程序中使事情自动发生很有用,并且可以帮助解决时序问题。
使用中断,您无需不断检查当前引脚值。 当检测到变化时,会触发一个事件——调用一个函数。 该函数称为中断服务程序(ISR)。
当中断发生时,处理器停止执行主程序执行任务,进入中断服务程序,中断服务程序执行完成后再返回到主程序,如下图所示。
ESP8266 支持任何 GPIO 中的中断,但 GPIO16
除外。
要创建中断,需要调用 attachInterrupt()
并将 GPIO 中断引脚、ISR
(要调用的函数)和模式作为参数传递。 ISR 函数必须声明 ICACHE_RAM_ATTR
属性。 模式可以是 CHANGE
、RISING
或 FALLING
。