pub trait Monotonic {
    type Instant: Copy + Ord + Sub;

    fn ratio() -> Fraction;
    fn now() -> Self::Instant;
    unsafe fn reset();
    fn zero() -> Self::Instant;
Expand description

A monotonic clock / counter

Required Associated Types

A measurement of this clock, use CYCCNT as a reference implementation for Instant. Note that the Instant must be a signed value such as i32.

Required Methods

The ratio between the system timer (SysTick) frequency and this clock frequency, i.e. Monotonic clock * Fraction = System clock

The ratio must be expressed in reduced Fraction form to prevent overflows. That is 2 / 3 instead of 4 / 6

Returns the current time


This function is allowed to return nonsensical values if called before reset is invoked by the runtime. Therefore application authors should not call this function during the #[init] phase.

Resets the counter to zero


This function will be called exactly once by the RTIC runtime after #[init] returns and before tasks can start; this is also the case in multi-core applications. User code must never call this function.

A Self::Instant that represents a count of zero