pub struct RegisterField<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A>where
T: RegSpec,
A: Access,{ /* private fields */ }Expand description
Proxy struct for numeric bitfields
Implementations§
Source§impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>where
T: RegSpec,
A: Access,
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>where
T: RegSpec,
A: Access,
Sourcepub fn mask(&self) -> T::DataType
pub fn mask(&self) -> T::DataType
Get mask for bitfield, the mask is unshifted and at offset 0
Prefer the use of RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead,ValueTypeWrite, T, A>::get() to
extract a bitfield value.
Sourcepub const fn offset(&self) -> usize
pub const fn offset(&self) -> usize
Get offset of bitfield in containing register
Prefer the use of RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead,ValueTypeWrite, T, A>::get() to
extract a bitfield value.
Source§impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>
Source§impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>
Sourcepub fn set(self, value: ValueTypeWrite) -> RegValueT<T>
pub fn set(self, value: ValueTypeWrite) -> RegValueT<T>
Prepare bitfield value that could be written to register
§Example
ⓘ
// example with generic names
// get an instance by reading
let values = TIMER.bitfield_reg().read();
// or by starting with a known value
let value = timer::BitfieldReg::new(0);
// or by starting with the default
let value = timer::BitfieldReg::default();
// set bitfields
let value = value
// set numeric bitfield
.bitfieldw()
.set(0x55)
// set enumerated bitfield with enumeration
.bitfieldenumerated()
.set(timer::bitfield_reg::BitfieldEnumerated::GPIOA_0)
// set enumerated bitfield from integer
.bitfieldenumerated()
.set(1.into());
// up until now no hardware change has taken place, do that now by writing
TIMER.bitfield_reg().write(value);Auto Trait Implementations§
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> Freeze for RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>where
<T as RegSpec>::DataType: Freeze,
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> RefUnwindSafe for RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>where
<T as RegSpec>::DataType: RefUnwindSafe,
ValueTypeRead: RefUnwindSafe,
ValueTypeWrite: RefUnwindSafe,
A: RefUnwindSafe,
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> Send for RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> Sync for RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> Unpin for RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>
impl<const START_OFFSET: usize, const MASK: u64, const DIM: u8, const DIM_INCREMENT: u8, ValueTypeRead, ValueTypeWrite, T, A> UnwindSafe for RegisterField<START_OFFSET, MASK, DIM, DIM_INCREMENT, ValueTypeRead, ValueTypeWrite, T, A>where
<T as RegSpec>::DataType: UnwindSafe,
ValueTypeRead: UnwindSafe,
ValueTypeWrite: UnwindSafe,
A: UnwindSafe,
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
Mutably borrows from an owned value. Read more