Arduino计时器库和剩余时间

时间:2015-10-27 10:21:29

标签: c timer arduino

我使用此计时器库:https://github.com/JChristensen/Timer/tree/v2.1

这是一个非常好的lib,它运行完美,使用起来相对简单。但我需要有一个计时器的剩余时间来显示它。

我觉得我错过了什么。

现在,我注意到: 持续时间,离开,时间Arduino和我做数学。

最好是来恢复计时器的剩余时间。我认为这是可能的,但我不明白。你能救我吗?

谢谢

2 个答案:

答案 0 :(得分:1)

查看此库的README,我们看到了这一切的基本方式。

  

库不会干扰内置定时器,它只是在基本类型的调度程序中使用millis()来决定什么时候需要做什么。

我不确定你对中断有多少经验但是,重要的是要注意定时器中断有时候会被注册"然后他们就走了这似乎不是基于更新调用的情况,看起来这个库实际上只是基于millis()何时返回所需的delta来注册回调函数。

考虑到这一点,我获得剩余时间的最佳建议是对图书馆进行相同的计算。基本上正常使用库,但在第一次使用库时使用millis()并继续调用它来自己跟踪delta。

我能找到的唯一其他选项是.cpp进行调用

_events[i].lastEventTime = millis();

然而,我似乎并没有找到确切的方法。

编辑: 从个人角度来说,我建议您了解硬件定时器的工作原理。它们将使您的项目运行更顺畅,不太可能崩溃,并且它们更像是一个真实的世界"如果你有兴趣了解它,那么项目就会完成。

答案 1 :(得分:0)

好的,我找到了解决方案:

remaining_time = _events[id].period - (now - _events[id].lastEventTime);

我将分叉项目以添加此功能。