运行 多个计时器?
Running multiple timers?
我有 nodemcu 并试图实现以下目标。
- 每 5 分钟向远程网站发送一次数据。
- 每 1 秒检查一次传感器
所以有两个函数:
function checkSensors()
print("checking sensors")
-- do some stuff here
end
function sendData()
print("Sending Data")
-- do some stuff here
end
tmr.alarm(0, 1000, 1, function() checkSensors() end )
tmr.alarm(0, 300000, 1, function() sendData() end )
如果我注释掉第一个 tmr,那么每隔 5 分钟就会调用函数 sendData。同样注释掉第一个 tmr 函数 sendData 每秒调用一次。
然而,两者都在 sendData 上被调用。
我怎样才能同时使用这两个计时器,或者有其他方法可以做到这一点。
tmr.alarm
的第一个参数是定时器的ID。因为您对两个调用都使用 0
,所以这只是将一个计时器重新配置两次。如果你想要多个计时器,你需要为每个计时器传递不同的ID。
有 7 个静态计时器 (0
-6
),但它们即将消失。您可以使用 tmr.create
创建动态计时器。返回的ID可以传递给tmr.alarm
.
我有 nodemcu 并试图实现以下目标。 - 每 5 分钟向远程网站发送一次数据。 - 每 1 秒检查一次传感器
所以有两个函数:
function checkSensors()
print("checking sensors")
-- do some stuff here
end
function sendData()
print("Sending Data")
-- do some stuff here
end
tmr.alarm(0, 1000, 1, function() checkSensors() end )
tmr.alarm(0, 300000, 1, function() sendData() end )
如果我注释掉第一个 tmr,那么每隔 5 分钟就会调用函数 sendData。同样注释掉第一个 tmr 函数 sendData 每秒调用一次。
然而,两者都在 sendData 上被调用。
我怎样才能同时使用这两个计时器,或者有其他方法可以做到这一点。
tmr.alarm
的第一个参数是定时器的ID。因为您对两个调用都使用 0
,所以这只是将一个计时器重新配置两次。如果你想要多个计时器,你需要为每个计时器传递不同的ID。
有 7 个静态计时器 (0
-6
),但它们即将消失。您可以使用 tmr.create
创建动态计时器。返回的ID可以传递给tmr.alarm
.