pub struct CountDown { /* private fields */ }Expand description
Implementation of the embedded_hal_0_2::timer traits using rp2040_hal::timer counter.
There is no Embedded HAL 1.0 equivalent at this time.
If all you need is a delay, Timer does implement embedded_hal::delay::DelayNs.
§Usage
use embedded_hal_0_2::timer::{CountDown, Cancel};
use fugit::ExtU32;
use rp2040_hal;
let mut pac = rp2040_hal::pac::Peripherals::take().unwrap();
// Make sure to initialize clocks, otherwise the timer wouldn't work
// properly. Omitted here for terseness.
let clocks: rp2040_hal::clocks::ClocksManager = todo!();
// Configure the Timer peripheral in count-down mode
let timer = rp2040_hal::Timer::new(pac.TIMER, &mut pac.RESETS, &clocks);
let mut count_down = timer.count_down();
// Create a count_down timer for 500 milliseconds
count_down.start(500.millis());
// Block until timer has elapsed
let _ = nb::block!(count_down.wait());
// Restart the count_down timer with a period of 100 milliseconds
count_down.start(100.millis());
// Cancel it immediately
count_down.cancel();Trait Implementations§
impl Periodic for CountDown
Auto Trait Implementations§
impl Freeze for CountDown
impl RefUnwindSafe for CountDown
impl Send for CountDown
impl Sync for CountDown
impl Unpin for CountDown
impl UnwindSafe for CountDown
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more