5个不稳定版本
0.3.2 | 2024年8月5日 |
---|---|
0.3.1 | 2024年6月6日 |
0.3.0 | 2024年1月11日 |
0.2.0 | 2023年12月4日 |
0.0.0 |
|
28 在 嵌入式开发 中排名
每月下载量 26,394
在 81 个库中(直接使用 68 个)使用
135KB
2K SLoC
embassy-time
计时、延迟和超时。
使用系统启动以来的经过时间进行计时。时间以tick表示,tick速率由驱动器(在固定速率tick的情况下)或用户通过tick速率特性选择。所选tick速率适用于embassy-time
中的所有内容,因此决定了(1 / tick_rate)秒
的最大时间分辨率。
tick计数为64位。默认的1MHz tick速率支持表示长达约584558年的时间跨度,这对于所有实际用途来说已经足够大,并且可以避免溢出的问题。
全局时间驱动器
time
模块由在构建时指定的全局“时间驱动器”支持。程序中只能有一个驱动器处于活动状态。
所有方法和结构体都透明地调用活动驱动器。这使得库能够在无需泛型参数的情况下以驱动器无关的方式使用embassy_time
。
有关更多详细信息,请参阅embassy_time_driver
库。
瞬间和持续时间
Instant
表示一个给定的时间点(相对于系统启动),而 Duration
表示一段时间跨度。它们实现了您预期的数学操作,如加法和减法。
延迟和超时
Timer
允许执行异步延迟。 Ticker
允许在时间推移过程中不发生漂移的周期性延迟。
Delay
为与生态系统中库的兼容性提供了 embedded-hal
延迟特性的实现。
系统时间
time
模块仅处理单调递增的滴答计数。因此,它没有直接支持系统时间(例如 2021-08-24 13:33:21
这样的“现实生活中的”日期时间)。
如果不需要跨重启持久性,可以通过存储“自启动以来经过的秒数”与“自 Unix 纪元以来的秒数”之间的偏移量,在 embassy_time
的基础上构建支持。
依赖项
~1.3–3.5MB
~59K SLoC