NodeMCU (Lua) 并行定时器

我是一个相当初学者,面对一个我长时间解决不了的问题。

NodeMCU: 0.9.6 build 20150704

Lua: 5.1.4

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* B1_up.lua ******************

Mpin = 8

gpio.mode(Mpin, gpio.OUTPUT)
gpio.write(Mpin, gpio.HIGH)

xdf = 0
tmr.alarm(4, 1000, 1, function()
if xdf < 5 then xdf = xdf+ 1
else
gpio.write(Mpin, gpio.LOW)
tmr.stop(4)
end
end)

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* B2_up.lua ******************

Mpin = 0

gpio.mode(Mpin, gpio.OUTPUT)
gpio.write(Mpin, gpio.HIGH)

xkf = 0
tmr.alarm(5, 1000, 1, function()
if xkf < 5 then xkf = xkf+ 1
else
gpio.write(Mpin, gpio.LOW)
tmr.stop(5)
end
end)

单独运行没问题,但按顺序执行:

dofile("B1_up.lua")
dofile("B2_up.lua")

... 只有最后一个(在这种情况下是 B2_up.lua)会在 5 秒后执行 gpio.write(Mpin, gpio.LOW) 命令。为什么?

点赞