pub struct CrystalOscillator<S: State> { /* private fields */ }
Expand description

A Crystal Oscillator.

Implementations§

source§

impl<S: State> CrystalOscillator<S>

source

pub fn free(self) -> XOSC

Releases the underlying device.

source§

impl CrystalOscillator<Disabled>

source

pub fn new(dev: XOSC) -> Self

Creates a new CrystalOscillator from the underlying device.

source

pub fn initialize( self, frequency: HertzU32, startup_delay_multiplier: u32 ) -> Result<CrystalOscillator<Unstable>, Error>

Initializes the XOSC : frequency range is set, startup delay is calculated and set. Set startup_delay_multiplier to a value > 1 when using a slow-starting oscillator.

source§

impl CrystalOscillator<Unstable>

source

pub fn await_stabilization(&self) -> Result<StableOscillatorToken, Infallible>

One has to wait for the startup delay before using the oscillator, ie awaiting stabilization of the XOSC

source

pub fn get_stable( self, _token: StableOscillatorToken ) -> CrystalOscillator<Stable>

Returns the stabilized oscillator

source§

impl CrystalOscillator<Stable>

source

pub fn operating_frequency(&self) -> HertzU32

Operating frequency of the XOSC in hertz

source

pub fn disable(self) -> CrystalOscillator<Disabled>

Disables the XOSC

source

pub unsafe fn dormant(self) -> CrystalOscillator<Unstable>

Put the XOSC in DORMANT state. The method returns after the processor awakens.

After waking up from the DORMANT state, XOSC needs to re-stabilise.

§Safety

This method is marked unsafe because prior to switch the XOSC into DORMANT state, PLLs must be stopped and IRQs have to be properly configured. This method does not do any of that, it merely switches the XOSC to DORMANT state. It should only be called if this oscillator is the clock source for the system clock. See Chapter 2, Section 16, §5) for details.

Trait Implementations§

source§

impl ClockSource for CrystalOscillator<Stable>

source§

fn get_freq(&self) -> HertzU32

Get the operating frequency for this source Read more
source§

impl ValidSrc<AdcClock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkAdcSrcType

Get register value for this ClockSource
source§

impl ValidSrc<GpioOutput0Clock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkGpout0SrcType

Get register value for this ClockSource
source§

impl ValidSrc<GpioOutput1Clock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkGpout1SrcType

Get register value for this ClockSource
source§

impl ValidSrc<GpioOutput2Clock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkGpout2SrcType

Get register value for this ClockSource
source§

impl ValidSrc<GpioOutput3Clock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkGpout3SrcType

Get register value for this ClockSource
source§

impl ValidSrc<PeripheralClock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkPeriSrcType

Get register value for this ClockSource
source§

impl ValidSrc<ReferenceClock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkRefSrcType

Get register value for this ClockSource
source§

impl ValidSrc<RtcClock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkRtcSrcType

Get register value for this ClockSource
source§

impl ValidSrc<SystemClock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkSysSrcType

Get register value for this ClockSource
source§

impl ValidSrc<UsbClock> for CrystalOscillator<Stable>

source§

fn is_aux(&self) -> bool

Is this a ClockSource for src or aux?
source§

fn variant(&self) -> ClkUsbSrcType

Get register value for this ClockSource

Auto Trait Implementations§

§

impl<S> RefUnwindSafe for CrystalOscillator<S>
where S: RefUnwindSafe,

§

impl<S> Send for CrystalOscillator<S>
where S: Send,

§

impl<S> !Sync for CrystalOscillator<S>

§

impl<S> Unpin for CrystalOscillator<S>
where S: Unpin,

§

impl<S> UnwindSafe for CrystalOscillator<S>
where S: UnwindSafe,

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<Choices> CoproductSubsetter<CNil, HNil> for Choices

§

type Remainder = Choices

source§

fn subset( self ) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>

Extract a subset of the possible types in a coproduct (or get the remaining possibilities) 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> Is for T
where T: Sealed + Borrow<T> + BorrowMut<T>,

§

type Type = T

source§

impl<T, U, I> LiftInto<U, I> for T
where U: LiftFrom<T, I>,

source§

fn lift_into(self) -> U

Performs the indexed conversion.
source§

impl<Source> Sculptor<HNil, HNil> for Source

§

type Remainder = Source

source§

fn sculpt(self) -> (HNil, <Source as Sculptor<HNil, HNil>>::Remainder)

Consumes the current HList and returns an HList with the requested shape. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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.