pub trait _embedded_hal_timer_CountDown {
    type Time;
    // Required methods
    fn start<T>(&mut self, count: T)
       where T: Into<Self::Time>;
    fn wait(&mut self) -> Result<(), Error<Void>>;
}Expand description
A count down timer
Contract
- self.start(count); block!(self.wait());MUST block for AT LEAST the time specified by- count.
Note that the implementer doesn’t necessarily have to be a downcounting timer; it could also be an upcounting timer as long as the above contract is upheld.
Examples
You can use this timer to create delays
extern crate embedded_hal as hal;
#[macro_use(block)]
extern crate nb;
use hal::prelude::*;
fn main() {
    let mut led: Led = {
        // ..
    };
    let mut timer: Timer6 = {
        // ..
    };
    Led.on();
    timer.start(1.s());
    block!(timer.wait()); // blocks for 1 second
    Led.off();
}
Required Associated Types§
Required Methods§
sourcefn wait(&mut self) -> Result<(), Error<Void>>
 
fn wait(&mut self) -> Result<(), Error<Void>>
Non-blockingly “waits” until the count down finishes
Contract
- If Self: Periodic, the timer will start a new count down right after the last one finishes.
- Otherwise the behavior of calling waitafter the last call returnedOkis UNSPECIFIED. Implementers are suggested to panic on this scenario to signal a programmer error.