Struct tm4c123x::generic::Reg

source ·
pub struct Reg<U, REG> { /* private fields */ }
Expand description

This structure provides volatile access to register

Implementations§

source§

impl<U, REG> Reg<U, REG>where Self: Readable, U: Copy,

source

pub fn read(&self) -> R<U, Self>

Reads the contents of Readable register

You can read the contents of a register in such way:

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();
source§

impl<U, REG> Reg<U, REG>where Self: ResetValue<Type = U> + Writable, U: Copy,

source

pub fn reset(&self)

Writes the reset value to Writable register

Resets the register to its initial state

source§

impl<U, REG> Reg<U, REG>where Self: ResetValue<Type = U> + Writable, U: Copy,

source

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

Writes bits to 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)
);

Other fields will have reset value.

source§

impl<U, REG> Reg<U, REG>where Self: Writable, U: Copy + Default,

source

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

Writes Zero to Writable register

Similar to write, but unused bits will contain 0.

source§

impl<U, REG> Reg<U, REG>where Self: Readable + Writable, U: Copy,

source

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

Modifies the contents of the register

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)
);

Other fields will have value they had before call modify.

Trait Implementations§

source§

impl<U: Send, REG> Send for Reg<U, REG>

Auto Trait Implementations§

§

impl<U, REG> !RefUnwindSafe for Reg<U, REG>

§

impl<U, REG> !Sync for Reg<U, REG>

§

impl<U, REG> Unpin for Reg<U, REG>where REG: Unpin, U: Unpin,

§

impl<U, REG> UnwindSafe for Reg<U, REG>where REG: UnwindSafe, U: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere 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 Twhere 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.