SysCounter

Struct SysCounter 

Source
pub struct SysCounter<const FREQ: u32>(/* private fields */);
Expand description

SysTick timer with precision of 1 μs (1 MHz sampling)

Implementations§

Source§

impl<const FREQ: u32> SysCounter<FREQ>

Source

pub fn listen(&mut self, event: SysEvent)

Starts listening for an event

Source

pub fn unlisten(&mut self, event: SysEvent)

Stops listening for an event

Source

pub fn now(&self) -> TimerInstantU32<FREQ>

Source

pub fn start(&mut self, timeout: TimerDurationU32<FREQ>) -> Result<(), Error>

Source

pub fn wait(&mut self) -> Result<(), Error>

Source

pub fn cancel(&mut self) -> Result<(), Error>

Methods from Deref<Target = SystemTimer>§

Source

pub fn listen(&mut self, event: SysEvent)

Starts listening for an event

Source

pub fn unlisten(&mut self, event: SysEvent)

Stops listening for an event

Source

pub fn reset(&mut self)

Resets the counter

Trait Implementations§

Source§

impl<const FREQ: u32> Deref for SysCounter<FREQ>

Source§

type Target = SystemTimer

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<const FREQ: u32> DerefMut for SysCounter<FREQ>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<const FREQ: u32> Timer<FREQ> for SysCounter<FREQ>

Source§

type Error = Error

An error that might happen during waiting
Source§

fn now(&mut self) -> TimerInstantU32<FREQ>

Return current time Instant
Source§

fn start(&mut self, duration: TimerDurationU32<FREQ>) -> Result<(), Self::Error>

Start timer with a duration
Source§

fn wait(&mut self) -> Result<(), Self::Error>

Wait until timer duration has expired. Must return nb::Error::WouldBlock if timer duration is not yet over. Must return OK(()) as soon as timer duration has expired.
Source§

fn cancel(&mut self) -> Result<(), Self::Error>

Tries to stop this timer. An error will be returned if the timer has already been canceled or was never started. An error is also returned if the timer is not Periodic and has already expired.

Auto Trait Implementations§

§

impl<const FREQ: u32> Freeze for SysCounter<FREQ>

§

impl<const FREQ: u32> RefUnwindSafe for SysCounter<FREQ>

§

impl<const FREQ: u32> Send for SysCounter<FREQ>

§

impl<const FREQ: u32> !Sync for SysCounter<FREQ>

§

impl<const FREQ: u32> Unpin for SysCounter<FREQ>

§

impl<const FREQ: u32> UnwindSafe for SysCounter<FREQ>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, const R: u8> RFrom<T, R> for T

Source§

fn rfrom(value: T) -> T

Source§

impl<S, T, const R: u8> RInto<T, R> for S
where T: RFrom<S, R>,

Source§

fn rinto(self) -> T

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.