pub struct ROSC { /* private fields */ }Expand description
ROSC
Implementations§
Source§impl ROSC
impl ROSC
Sourcepub const PTR: *const RegisterBlock = {0x400e8000 as *const rp235x_hal::rp235x_pac::rosc::RegisterBlock}
pub const PTR: *const RegisterBlock = {0x400e8000 as *const rp235x_hal::rp235x_pac::rosc::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() -> ROSC
pub unsafe fn steal() -> ROSC
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 freqa(&self) -> &Reg<FREQA_SPEC>
pub fn freqa(&self) -> &Reg<FREQA_SPEC>
0x04 - The FREQA & FREQB registers control the frequency by controlling the drive strength of each stage The drive strength has 4 levels determined by the number of bits set Increasing the number of bits set increases the drive strength and increases the oscillation frequency 0 bits set is the default drive strength 1 bit set doubles the drive strength 2 bits set triples drive strength 3 bits set quadruples drive strength For frequency randomisation set both DS0_RANDOM=1 & DS1_RANDOM=1
Sourcepub fn freqb(&self) -> &Reg<FREQB_SPEC>
pub fn freqb(&self) -> &Reg<FREQB_SPEC>
0x08 - For a detailed description see freqa register
Sourcepub fn random(&self) -> &Reg<RANDOM_SPEC>
pub fn random(&self) -> &Reg<RANDOM_SPEC>
0x0c - Loads a value to the LFSR randomiser
Sourcepub fn dormant(&self) -> &Reg<DORMANT_SPEC>
pub fn dormant(&self) -> &Reg<DORMANT_SPEC>
0x10 - Ring Oscillator pause control
Sourcepub fn phase(&self) -> &Reg<PHASE_SPEC>
pub fn phase(&self) -> &Reg<PHASE_SPEC>
0x18 - Controls the phase shifted output
Sourcepub fn status(&self) -> &Reg<STATUS_SPEC>
pub fn status(&self) -> &Reg<STATUS_SPEC>
0x1c - Ring Oscillator Status
Sourcepub fn randombit(&self) -> &Reg<RANDOMBIT_SPEC>
pub fn randombit(&self) -> &Reg<RANDOMBIT_SPEC>
0x20 - This just reads the state of the oscillator output so randomness is compromised if the ring oscillator is stopped or run at a harmonic of the bus frequency
Sourcepub fn count(&self) -> &Reg<COUNT_SPEC>
pub fn count(&self) -> &Reg<COUNT_SPEC>
0x24 - A down counter running at the ROSC frequency which counts to zero and stops. To start the counter write a non-zero value. Can be used for short software pauses when setting up time sensitive hardware.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ROSC
impl RefUnwindSafe for ROSC
impl !Sync for ROSC
impl Unpin for ROSC
impl UnwindSafe for ROSC
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