Timing

Struct Timing 

Source
pub struct Timing { /* private fields */ }
Expand description

LPI2C timing parameters.

The implementation computes BUSIDLE based on the clock configuration values, but you can override this after construction.

The simplest way to construct a Timing is to use ideal().

Implementations§

Source§

impl Timing

Source

pub const fn ideal(clock_hz: u32, clock_speed: ClockSpeed) -> Self

Compute timing parameters assuming an ideal I2C bus.

This constructor assumes that

  • the SDA / SCL rise times are negligible (take less than one functional clock cycle).
  • there’s no need for glitch filters (FLITSCL = FILTSDA = 0).

These assumptions may not hold true for high clock speeds and I2C bus loadings. If that’s the case, you may find it’s better to define timing parameters yourself.

Note that this function can run at compile time. Consider evaluating in a const context to avoid the possibility of panics.

§Panics

After evaluating all prescalars, this function panics if the computed clock period cannot be represented in the 6 bits available for the configuration.

Source

pub const fn new( clock_configuration: ClockConfiguration, prescaler: Prescaler, ) -> Self

Computes timing parameters assuming an ideal circuit.

Define LPI2C timings by the clock configuration values, and a prescaler.

Source

pub const fn clock_configuration(&self) -> ClockConfiguration

Returns the clock configuration.

Source

pub const fn prescaler(&self) -> Prescaler

Returns the prescaler.

Source

pub const fn override_busidle(self, busidle: u32) -> Self

Override the BUSIDLE parameter.

The minimum BUSIDLE is computed by CLKLO, SETHOLD, and CLKHI. Use this method to override the value.

Trait Implementations§

Source§

impl Clone for Timing

Source§

fn clone(&self) -> Timing

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Timing

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Timing

Source§

fn eq(&self, other: &Timing) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Timing

Source§

impl Eq for Timing

Source§

impl StructuralPartialEq for Timing

Auto Trait Implementations§

§

impl Freeze for Timing

§

impl RefUnwindSafe for Timing

§

impl Send for Timing

§

impl Sync for Timing

§

impl Unpin for Timing

§

impl UnwindSafe for Timing

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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, 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.