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 = Timer<SYST>>§

Source

pub fn configure(&mut self, clocks: &Clocks)

Source

pub fn configure_external(&mut self, clocks: &Clocks)

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

Source

pub fn configure(&mut self, clocks: &Clocks)

Source

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

Starts listening for an event

Note, you will also have to enable the TIM2 interrupt in the NVIC to start receiving events.

Source

pub fn clear_interrupt(&mut self, event: Event)

Clears interrupt associated with event.

If the interrupt is not cleared, it will immediately retrigger after the ISR has finished.

Source

pub fn get_interrupt(&mut self) -> Event

Source

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

Stops listening for an event

Source

pub fn stop_in_debug(&mut self, dbg: &mut DBG, state: bool)

Stopping timer in debug mode can cause troubles when sampling the signal

Source

pub fn set_master_mode(&mut self, mode: TIM::Mms)

Trait Implementations§

Source§

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

Source§

type Error = Error

Error returned when a countdown can’t be canceled.
Source§

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

Tries to cancel this countdown. Read more
Source§

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

Source§

type Target = Timer<SYST>

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.
Source§

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

Source§

type Time = Duration<u32, 1, FREQ>

The unit of time used by this timer
Source§

fn start<T>(&mut self, timeout: T)
where T: Into<Self::Time>,

Starts a new count down
Source§

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

Non-blockingly “waits” until the count down finishes Read more
Source§

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

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