c - Arduino定时器库和剩余时间

标签 c timer arduino

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

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

我感觉我错过了什么。

现在,我注意到: 持续时间、出发时间、时间 Arduino 和我进行数学计算。

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

谢谢

最佳答案

查看该库的自述文件,我们可以看到这一切的基本工作方式。

The library does not interfere with the built-in timers, it just uses millis() in a basic type of scheduler to decide when something needs doing.

我不确定您对中断有多少经验,但是,重要的是要注意定时器中断有时可以“注册”,然后它们就会消失。根据更新调用,情况似乎并非如此,该库实际上只是根据 millis() 何时返回所需的时间增量来注册回调函数。

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

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

_events[i].lastEventTime = millis();

但是我还没有找到它到底是如何工作的。

编辑: 就个人而言,我真的建议您了解硬件计时器的工作原理。它们将使您的项目运行更顺畅,不太可能崩溃,并且如果您有兴趣了解的话,它们更像是“现实世界”项目的完成方式。

关于c - Arduino定时器库和剩余时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33365306/

相关文章:

jquery 水平时间栏在可变秒数后提交页面

iphone - 如何在 objective-c 中取消调度 NSTimer

c++ - 正确获取 sizeof()

c - 如何使用双指针从文本文件填充字符串数组?

c - C 运行时静态链接与动态链接中的内存分配

c - 如何仅使用 fork() 和 if 连续打印多个内容?

Android,添加许多带计时器的按钮

c - 更改多维字符数组的值时“崩溃”

javascript - HTML/JavaScript : Outputting keyboard strokes to URL Parameters

c - 逐个字符打印标准输入直到文件末尾