Type Alias CLK_REF_SELECTED

Source
pub type CLK_REF_SELECTED = Reg<CLK_REF_SELECTED_SPEC>;
Expand description

CLK_REF_SELECTED (r) register accessor: 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.

You can read this register and get clk_ref_selected::R. See API.

For information about available fields see clk_ref_selected module

Aliased Type§

struct CLK_REF_SELECTED { /* private fields */ }

Implementations

Source§

impl<REG: Resettable + Writable> Reg<REG>

Source

pub fn reset(&self)

Writes the reset value to Writable register.

Resets the register to its initial state.

Source

pub fn write<F>(&self, f: F)
where F: FnOnce(&mut W<REG>) -> &mut W<REG>,

Writes bits to a Writable register.

You can write raw bits into a register:

periph.reg.write(|w| unsafe { w.bits(rawbits) });

or write only the fields you need:

periph.reg.write(|w| w
    .field1().bits(newfield1bits)
    .field2().set_bit()
    .field3().variant(VARIANT)
);

or an alternative way of saying the same:

periph.reg.write(|w| {
    w.field1().bits(newfield1bits);
    w.field2().set_bit();
    w.field3().variant(VARIANT)
});

In the latter case, other fields will be set to their reset value.

Source§

impl<REG: Writable> Reg<REG>

Source

pub unsafe fn write_with_zero<F>(&self, f: F)
where F: FnOnce(&mut W<REG>) -> &mut W<REG>,

Writes 0 to a Writable register.

Similar to write, but unused bits will contain 0.

§Safety

Unsafe to use with registers which don’t allow to write 0.

Source§

impl<REG: Readable + Writable> Reg<REG>

Source

pub fn modify<F>(&self, f: F)
where for<'w> F: FnOnce(&R<REG>, &'w mut W<REG>) -> &'w mut W<REG>,

Modifies the contents of the register by reading and then writing it.

E.g. to do a read-modify-write sequence to change parts of a register:

periph.reg.modify(|r, w| unsafe { w.bits(
   r.bits() | 3
) });

or

periph.reg.modify(|_, w| w
    .field1().bits(newfield1bits)
    .field2().set_bit()
    .field3().variant(VARIANT)
);

or an alternative way of saying the same:

periph.reg.modify(|_, w| {
    w.field1().bits(newfield1bits);
    w.field2().set_bit();
    w.field3().variant(VARIANT)
});

Other fields will have the value they had before the call to modify.

Source§

impl<REG: RegisterSpec> Reg<REG>

Source

pub fn as_ptr(&self) -> *mut REG::Ux

Returns the underlying memory address of register.

let reg_ptr = periph.reg.as_ptr();
Source§

impl<REG: Readable> Reg<REG>

Source

pub fn read(&self) -> R<REG>

Reads the contents of a Readable register.

You can read the raw contents of a register by using bits:

let bits = periph.reg.read().bits();

or get the content of a particular field of a register:

let reader = periph.reg.read();
let bits = reader.field1().bits();
let flag = reader.field2().bit_is_set();

Trait Implementations

Source§

impl Debug for Reg<CLK_REF_SELECTED_SPEC>

Source§

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

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

impl<REG: RegisterSpec> Send for Reg<REG>
where REG::Ux: Send,