pub struct XOSC { /* private fields */ }Expand description
Controls the crystal oscillator
Implementations§
Source§impl XOSC
impl XOSC
Sourcepub const PTR: *const RegisterBlock = {0x40048000 as *const rp235x_hal::rp235x_pac::xosc::RegisterBlock}
pub const PTR: *const RegisterBlock = {0x40048000 as *const rp235x_hal::rp235x_pac::xosc::RegisterBlock}
Pointer to the register block
Sourcepub const fn ptr() -> *const RegisterBlock
pub const fn ptr() -> *const RegisterBlock
Return the pointer to the register block
Sourcepub unsafe fn steal() -> XOSC
pub unsafe fn steal() -> XOSC
Steal an instance of this peripheral
§Safety
Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.
Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.
Methods from Deref<Target = RegisterBlock>§
Sourcepub fn status(&self) -> &Reg<STATUS_SPEC>
pub fn status(&self) -> &Reg<STATUS_SPEC>
0x04 - Crystal Oscillator Status
Sourcepub fn dormant(&self) -> &Reg<DORMANT_SPEC>
pub fn dormant(&self) -> &Reg<DORMANT_SPEC>
0x08 - Crystal Oscillator pause control
Sourcepub fn startup(&self) -> &Reg<STARTUP_SPEC>
pub fn startup(&self) -> &Reg<STARTUP_SPEC>
0x0c - Controls the startup delay
Sourcepub fn count(&self) -> &Reg<COUNT_SPEC>
pub fn count(&self) -> &Reg<COUNT_SPEC>
0x10 - A down counter running at the xosc frequency which counts to zero and stops. Can be used for short software pauses when setting up time sensitive hardware. To start the counter, write a non-zero value. Reads will return 1 while the count is running and 0 when it has finished. Minimum count value is 4. Count values <4 will be treated as count value =4. Note that synchronisation to the register clock domain costs 2 register clock cycles and the counter cannot compensate for that.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for XOSC
impl RefUnwindSafe for XOSC
impl !Sync for XOSC
impl Unpin for XOSC
impl UnwindSafe for XOSC
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more