运行多个计时器?

时间:2016-11-03 17:20:47

标签: lua nodemcu

我有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时都会调用。

我如何使用这两种计时器,或者是否有其他方式我应该这样做。

1 个答案:

答案 0 :(得分:2)

tmr.alarm的第一个参数是计时器的ID。因为您对两个调用都使用0,所以只需重新配置一个计时器两次。如果您需要多个计时器,则需要为每个计时器传递不同的ID。

有7个静态计时器(0 - 6),但这些计时器正在消失。您可以使用tmr.create创建动态计时器。返回的ID可以传递给tmr.alarm