nodemcu制作闪烁小灯

原文: http://2016.8-p.info/post/01-16-nodemcu-blink/

简单实现方法

led正极接针脚, 负极接gnd

--第2个针脚
LED_PIN = 1
--转换为毫秒
US_TO_MS = 1000
--设置引脚为输出模式
gpio.mode(LED_PIN, gpio.OUTPUT)

--死循环
while true do
--点亮led
   gpio.write(LED_PIN, gpio.HIGH)
--暂停0.5秒
   tmr.delay(500 * US_TO_MS)
--熄灭led
   gpio.write(LED_PIN, gpio.LOW)
--暂停0.5秒
   tmr.delay(500 * US_TO_MS)
end

正规实现方法

死循环并不推荐, 这样无法实现中断, 也无法再推送lua代码
使用timer来处理吧

--设置控制针脚
LED_PIN = 1
--设置针脚模式
gpio.mode(LED_PIN, gpio.OUTPUT)
--设置变量
value = true
--设置计时器0每0.5秒执行一次程序
tmr.alarm(0, 500, 1, function ()
--设置led状态
    gpio.write(LED_PIN, value)
--改变led状态
    value = not value
end)

术语

中断

打断当前处理器做的事情, 优先做中断的请求
其实学过编程后会很好理解中断是什么, 中断就是硬件的事件
就像做手机开发时, 手机晃动的检测, 是否点击了某个按钮, 滑动了屏幕, 这都是一系列的程序事件
或者另一个比方是玩游戏机, 游戏中人物的操作, 体现在手柄的按键上. 而响应这种操作的就是中断.

gpio中断 - 给引脚一个高电平 or 低电平 or 上升沿 or 下降沿
计时器中断 - 计时器时间到了
串口数据中断

中断其实是对一个事件的反馈, 反馈的方式就是调用一个函数/方法, 让它在这一刻执行

死循环

通过频繁循环无用代码次数来达到延迟时间的目的

单片机机制

单片机每执行一次命令都需要一定的时间, 而如果堆满了命令, 就没办法通过中断插入程序, 影响调试和通信等功能

https://blog.csdn.net/FourLeafCloverLLLS/article/details/83051326

你可能感兴趣的:(nodemcu制作闪烁小灯)