我使用此计时器库:https://github.com/JChristensen/Timer/tree/v2.1
这是一个非常好的lib,它运行完美,使用起来相对简单。但我需要有一个计时器的剩余时间来显示它。
我觉得我错过了什么。
现在,我注意到: 持续时间,离开,时间Arduino和我做数学。
最好是来恢复计时器的剩余时间。我认为这是可能的,但我不明白。你能救我吗?
谢谢
答案 0 :(得分:1)
查看此库的README,我们看到了这一切的基本方式。
库不会干扰内置定时器,它只是在基本类型的调度程序中使用millis()来决定什么时候需要做什么。
我不确定你对中断有多少经验但是,重要的是要注意定时器中断有时候会被注册"然后他们就走了这似乎不是基于更新调用的情况,看起来这个库实际上只是基于millis()何时返回所需的delta来注册回调函数。
考虑到这一点,我获得剩余时间的最佳建议是对图书馆进行相同的计算。基本上正常使用库,但在第一次使用库时使用millis()并继续调用它来自己跟踪delta。
我能找到的唯一其他选项是.cpp进行调用
_events[i].lastEventTime = millis();
然而,我似乎并没有找到确切的方法。
编辑: 从个人角度来说,我建议您了解硬件定时器的工作原理。它们将使您的项目运行更顺畅,不太可能崩溃,并且它们更像是一个真实的世界"如果你有兴趣了解它,那么项目就会完成。
答案 1 :(得分:0)
好的,我找到了解决方案:
remaining_time = _events[id].period - (now - _events[id].lastEventTime);
我将分叉项目以添加此功能。