1 个不稳定版本
0.1.0 | 2024 年 1 月 11 日 |
---|
在 嵌入式开发 中排名第 2109
每月下载量 16,291
被 60 个 软件包使用(直接使用 2 个)
5KB
embassy-time-queue-driver
本软件包包含 embassy-time
定时器队列使用的驱动 trait。
很少需要直接使用此软件包。仅在实现自己的定时器队列时使用。
有两种定时器队列实现,一个在 embassy-time
中,通过 generic-queue
功能启用,另一个在 embassy-executor
中,通过 integrated-timers
功能启用。
lib.rs
:
实现定时器队列
- 定义一个结构体
MyTimerQueue
- 实现
TimerQueue
用于它 - 使用
timer_queue_impl
将其注册为全局定时器队列。
示例
use core::task::Waker;
use embassy_time::Instant;
use embassy_time::queue::{TimerQueue};
struct MyTimerQueue{}; // not public!
impl TimerQueue for MyTimerQueue {
fn schedule_wake(&'static self, at: u64, waker: &Waker) {
todo!()
}
}
embassy_time_queue_driver::timer_queue_impl!(static QUEUE: MyTimerQueue = MyTimerQueue{});