RegisterValue

Trait RegisterValue 

Source
pub trait RegisterValue<T: RegSpec> {
    // Required methods
    fn new(data: T::DataType) -> Self;
    fn get_raw(&self) -> T::DataType;
    fn set_raw(self, value: T::DataType) -> Self;
}

Required Methods§

Source

fn new(data: T::DataType) -> Self

Create a register value that could be written to a register from raw integer

// example with generic names
// needs: use test_pac::{timer, RegisterValue, TIMER}
let to_write = timer::BitfieldReg::new(0xdeadbeef);
TIMER.bitfield_reg().write(to_write);
let to_write = to_write.boolw().set(true);
TIMER.bitfield_reg().write(to_write);
Source

fn get_raw(&self) -> T::DataType

Get raw integer from value read from register

// example with generic names
// needs: use pac::{RegisterValue, TIMER}
let x = TIMER.bitfield_reg().read().get_raw();
Source

fn set_raw(self, value: T::DataType) -> Self

Prepare a register value that could be written to a register with an arbitrary value

Use this function for setting a register to a custom value, independent of bitfields, enumerations, etc. No checks are performed on the passed value. The whole register is updated on write.

// example with generic names
// needs: use pac::{RegisterValue, TIMER}
TIMER.bitfield_reg().init(|r| r.set_raw(0xdeadbeef))

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§