#信号 #时间 #锁存

无std timed-signal

生成时序信号的辅助crate

2个不稳定版本

0.2.0 2023年8月18日
0.1.0 2022年12月18日

#577 in 嵌入式开发

MIT许可证

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]

无运行时依赖