Struct rp2040_pac::CLOCKS

source ·
pub struct CLOCKS { /* private fields */ }
Expand description

CLOCKS

Implementations§

source§

impl CLOCKS

source

pub const PTR: *const RegisterBlock = {0x40008000 as *const clocks::RegisterBlock}

Pointer to the register block

source

pub const fn ptr() -> *const RegisterBlock

Return the pointer to the register block

source

pub unsafe fn steal() -> Self

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

source

pub fn clk_gpout0_ctrl(&self) -> &CLK_GPOUT0_CTRL

0x00 - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_gpout0_div(&self) -> &CLK_GPOUT0_DIV

0x04 - Clock divisor, can be changed on-the-fly

source

pub fn clk_gpout0_selected(&self) -> &CLK_GPOUT0_SELECTED

0x08 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_gpout1_ctrl(&self) -> &CLK_GPOUT1_CTRL

0x0c - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_gpout1_div(&self) -> &CLK_GPOUT1_DIV

0x10 - Clock divisor, can be changed on-the-fly

source

pub fn clk_gpout1_selected(&self) -> &CLK_GPOUT1_SELECTED

0x14 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_gpout2_ctrl(&self) -> &CLK_GPOUT2_CTRL

0x18 - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_gpout2_div(&self) -> &CLK_GPOUT2_DIV

0x1c - Clock divisor, can be changed on-the-fly

source

pub fn clk_gpout2_selected(&self) -> &CLK_GPOUT2_SELECTED

0x20 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_gpout3_ctrl(&self) -> &CLK_GPOUT3_CTRL

0x24 - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_gpout3_div(&self) -> &CLK_GPOUT3_DIV

0x28 - Clock divisor, can be changed on-the-fly

source

pub fn clk_gpout3_selected(&self) -> &CLK_GPOUT3_SELECTED

0x2c - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_ref_ctrl(&self) -> &CLK_REF_CTRL

0x30 - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_ref_div(&self) -> &CLK_REF_DIV

0x34 - Clock divisor, can be changed on-the-fly

source

pub fn clk_ref_selected(&self) -> &CLK_REF_SELECTED

0x38 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
The glitchless multiplexer does not switch instantaneously (to avoid glitches), so software should poll this register to wait for the switch to complete. This register contains one decoded bit for each of the clock sources enumerated in the CTRL SRC field. At most one of these bits will be set at any time, indicating that clock is currently present at the output of the glitchless mux. Whilst switching is in progress, this register may briefly show all-0s.

source

pub fn clk_sys_ctrl(&self) -> &CLK_SYS_CTRL

0x3c - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_sys_div(&self) -> &CLK_SYS_DIV

0x40 - Clock divisor, can be changed on-the-fly

source

pub fn clk_sys_selected(&self) -> &CLK_SYS_SELECTED

0x44 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
The glitchless multiplexer does not switch instantaneously (to avoid glitches), so software should poll this register to wait for the switch to complete. This register contains one decoded bit for each of the clock sources enumerated in the CTRL SRC field. At most one of these bits will be set at any time, indicating that clock is currently present at the output of the glitchless mux. Whilst switching is in progress, this register may briefly show all-0s.

source

pub fn clk_peri_ctrl(&self) -> &CLK_PERI_CTRL

0x48 - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_peri_selected(&self) -> &CLK_PERI_SELECTED

0x50 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_usb_ctrl(&self) -> &CLK_USB_CTRL

0x54 - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_usb_div(&self) -> &CLK_USB_DIV

0x58 - Clock divisor, can be changed on-the-fly

source

pub fn clk_usb_selected(&self) -> &CLK_USB_SELECTED

0x5c - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_adc_ctrl(&self) -> &CLK_ADC_CTRL

0x60 - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_adc_div(&self) -> &CLK_ADC_DIV

0x64 - Clock divisor, can be changed on-the-fly

source

pub fn clk_adc_selected(&self) -> &CLK_ADC_SELECTED

0x68 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_rtc_ctrl(&self) -> &CLK_RTC_CTRL

0x6c - Clock control, can be changed on-the-fly (except for auxsrc)

source

pub fn clk_rtc_div(&self) -> &CLK_RTC_DIV

0x70 - Clock divisor, can be changed on-the-fly

source

pub fn clk_rtc_selected(&self) -> &CLK_RTC_SELECTED

0x74 - Indicates which SRC is currently selected by the glitchless mux (one-hot).
This slice does not have a glitchless mux (only the AUX_SRC field is present, not SRC) so this register is hardwired to 0x1.

source

pub fn clk_sys_resus_ctrl(&self) -> &CLK_SYS_RESUS_CTRL

0x78 -

source

pub fn clk_sys_resus_status(&self) -> &CLK_SYS_RESUS_STATUS

0x7c -

source

pub fn fc0_ref_khz(&self) -> &FC0_REF_KHZ

0x80 - Reference clock frequency in kHz

source

pub fn fc0_min_khz(&self) -> &FC0_MIN_KHZ

0x84 - Minimum pass frequency in kHz. This is optional. Set to 0 if you are not using the pass/fail flags

source

pub fn fc0_max_khz(&self) -> &FC0_MAX_KHZ

0x88 - Maximum pass frequency in kHz. This is optional. Set to 0x1ffffff if you are not using the pass/fail flags

source

pub fn fc0_delay(&self) -> &FC0_DELAY

0x8c - Delays the start of frequency counting to allow the mux to settle
Delay is measured in multiples of the reference clock period

source

pub fn fc0_interval(&self) -> &FC0_INTERVAL

0x90 - The test interval is 0.98us * 2interval, but let’s call it 1us * 2interval
The default gives a test interval of 250us

source

pub fn fc0_src(&self) -> &FC0_SRC

0x94 - Clock sent to frequency counter, set to 0 when not required
Writing to this register initiates the frequency count

source

pub fn fc0_status(&self) -> &FC0_STATUS

0x98 - Frequency counter status

source

pub fn fc0_result(&self) -> &FC0_RESULT

0x9c - Result of frequency measurement, only valid when status_done=1

source

pub fn wake_en0(&self) -> &WAKE_EN0

0xa0 - enable clock in wake mode

source

pub fn wake_en1(&self) -> &WAKE_EN1

0xa4 - enable clock in wake mode

source

pub fn sleep_en0(&self) -> &SLEEP_EN0

0xa8 - enable clock in sleep mode

source

pub fn sleep_en1(&self) -> &SLEEP_EN1

0xac - enable clock in sleep mode

source

pub fn enabled0(&self) -> &ENABLED0

0xb0 - indicates the state of the clock enable

source

pub fn enabled1(&self) -> &ENABLED1

0xb4 - indicates the state of the clock enable

source

pub fn intr(&self) -> &INTR

0xb8 - Raw Interrupts

source

pub fn inte(&self) -> &INTE

0xbc - Interrupt Enable

source

pub fn intf(&self) -> &INTF

0xc0 - Interrupt Force

source

pub fn ints(&self) -> &INTS

0xc4 - Interrupt status after masking & forcing

Trait Implementations§

source§

impl Debug for CLOCKS

source§

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

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

impl Deref for CLOCKS

§

type Target = RegisterBlock

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Send for CLOCKS

Auto Trait Implementations§

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

§

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.