[][src]Trait rtfm::Monotonic

pub trait Monotonic {
    type Instant: Copy + Ord + Sub;
    fn ratio() -> Fraction;
fn now() -> Self::Instant;
unsafe fn reset();
fn zero() -> Self::Instant; }

A monotonic clock / counter

Associated Types

type Instant: Copy + Ord + Sub

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.

Loading content...

Required methods

fn ratio() -> Fraction

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

fn now() -> Self::Instant

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.

unsafe fn reset()

Resets the counter to zero


This function will be called exactly once by the RTFM 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.

fn zero() -> Self::Instant

A Self::Instant that represents a count of zero

Loading content...


Loading content...