2个不稳定版本
0.2.0 | 2023年8月18日 |
---|---|
0.1.0 | 2022年12月18日 |
#577 in 嵌入式开发
24KB
538 行
timed-signal
no_std
Rust辅助crate,用于生成时序信号,提供以下特性:
- 静态开、关和切换。
- 计划状态变化。
- 特定持续时间的脉冲,具有单次和重新触发。
- 同步闪烁多个信号。
用法
- 创建
TimedSignal
的实例。 - 设置信号状态,可以是静态的或根据tick值动态变化。
- 调用带有tick当前值的参数的
update()
函数。它将根据tick返回信号的状态。tick值可以是任何单位,例如毫秒或微秒。没有连续值的限制,但必须是单调递增的。
示例
use timed_signal::TimedSignal;
// Create some instances of to drive LEDs.
let mut led1 = TimedSignal::new();
let mut led2 = TimedSignal::new();
let mut led3 = TimedSignal::new();
// Blink LED1 with a period of 4. LED will then be on for 2 ticks and off for another 2.
led1.blink(4);
// Set LED2 on until a specific tick is reached.
led2.on_until(10);
// Toggle LED3 for a number of ticks.
led3.toggle_for(20);
// Just a dummy loop to iterate over the tick.
for tick in 0..100 {
let state1 = led1.update(tick);
let state2 = led2.update(tick);
let state3 = led3.update(tick);
println!("{}: {:?} {:?} {:?}", tick, state1, state2, state3);
}
测试
运行cargo test
以运行单元测试。
许可证
在MIT许可证下发布。对该项目的任何贡献都必须在相同的许可证条件下提供。
作者:Oliver Rockstedt [email protected]