Removed monotonic trait, moved to rtic-core

This commit is contained in:
Emil Fresk 2020-11-26 18:07:22 +01:00
parent e65a86f696
commit 3b4c10e790

View file

@ -108,50 +108,6 @@ impl From<cortex_m::Peripherals> for Peripherals {
} }
} }
/// A fraction
pub struct Fraction {
/// The numerator
pub numerator: u32,
/// The denominator
pub denominator: u32,
}
/// A monotonic clock / counter
pub trait Monotonic {
/// 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`.
type Instant: Copy + Ord + Sub;
/// 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 ratio() -> Fraction;
/// Returns the current time
///
/// # Correctness
///
/// 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.
fn now() -> Self::Instant;
/// Resets the counter to *zero*
///
/// # Safety
///
/// 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.
unsafe fn reset();
/// A `Self::Instant` that represents a count of *zero*
fn zero() -> Self::Instant;
}
/// Sets the given `interrupt` as pending /// Sets the given `interrupt` as pending
/// ///
/// This is a convenience function around /// This is a convenience function around