Trait embedded_hal::timer::CountDown[][src]

pub trait CountDown {
    type Time;
    fn start<T>(&mut self, count: T)
        T: Into<Self::Time>
fn wait(&mut self) -> Result<(), Void>; }
Expand description

A count down timer


  • 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.


You can use this timer to create delays

extern crate embedded_hal as hal;
extern crate nb;

use hal::prelude::*;

fn main() {
    let mut led: Led = {
        // ..
    let mut timer: Timer6 = {
        // ..

    block!(timer.wait()); // blocks for 1 second;

Associated Types

The unit of time used by this timer

Required methods

Starts a new count down

Non-blockingly “waits” until the count down finishes


  • If Self: Periodic, the timer will start a new count down right after the last one finishes.
  • Otherwise the behavior of calling wait after the last call returned Ok is UNSPECIFIED. Implementers are suggested to panic on this scenario to signal a programmer error.