Struct rp_pac::pio::regs::SmExecctrl
source · #[repr(transparent)]pub struct SmExecctrl(pub u32);
Expand description
Execution/behavioural settings for state machine 0
Tuple Fields§
§0: u32
Implementations§
source§impl SmExecctrl
impl SmExecctrl
sourcepub const fn status_n(&self) -> ExecctrlStatusN
pub const fn status_n(&self) -> ExecctrlStatusN
Comparison level or IRQ index for the MOV x, STATUS instruction. If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N greater than the current FIFO depth are reserved, and have undefined behaviour.
sourcepub fn set_status_n(&mut self, val: ExecctrlStatusN)
pub fn set_status_n(&mut self, val: ExecctrlStatusN)
Comparison level or IRQ index for the MOV x, STATUS instruction. If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N greater than the current FIFO depth are reserved, and have undefined behaviour.
sourcepub const fn status_sel(&self) -> ExecctrlStatusSel
pub const fn status_sel(&self) -> ExecctrlStatusSel
Comparison used for the MOV x, STATUS instruction.
sourcepub fn set_status_sel(&mut self, val: ExecctrlStatusSel)
pub fn set_status_sel(&mut self, val: ExecctrlStatusSel)
Comparison used for the MOV x, STATUS instruction.
sourcepub const fn wrap_bottom(&self) -> u8
pub const fn wrap_bottom(&self) -> u8
After reaching wrap_top, execution is wrapped to this address.
sourcepub fn set_wrap_bottom(&mut self, val: u8)
pub fn set_wrap_bottom(&mut self, val: u8)
After reaching wrap_top, execution is wrapped to this address.
sourcepub const fn wrap_top(&self) -> u8
pub const fn wrap_top(&self) -> u8
After reaching this address, execution is wrapped to wrap_bottom. If the instruction is a jump, and the jump condition is true, the jump takes priority.
sourcepub fn set_wrap_top(&mut self, val: u8)
pub fn set_wrap_top(&mut self, val: u8)
After reaching this address, execution is wrapped to wrap_bottom. If the instruction is a jump, and the jump condition is true, the jump takes priority.
sourcepub const fn out_sticky(&self) -> bool
pub const fn out_sticky(&self) -> bool
Continuously assert the most recent OUT/SET to the pins
sourcepub fn set_out_sticky(&mut self, val: bool)
pub fn set_out_sticky(&mut self, val: bool)
Continuously assert the most recent OUT/SET to the pins
sourcepub const fn inline_out_en(&self) -> bool
pub const fn inline_out_en(&self) -> bool
If 1, use a bit of OUT data as an auxiliary write enable When used in conjunction with OUT_STICKY, writes with an enable of 0 will deassert the latest pin write. This can create useful masking/override behaviour due to the priority ordering of state machine pin writes (SM0 < SM1 < …)
sourcepub fn set_inline_out_en(&mut self, val: bool)
pub fn set_inline_out_en(&mut self, val: bool)
If 1, use a bit of OUT data as an auxiliary write enable When used in conjunction with OUT_STICKY, writes with an enable of 0 will deassert the latest pin write. This can create useful masking/override behaviour due to the priority ordering of state machine pin writes (SM0 < SM1 < …)
sourcepub const fn out_en_sel(&self) -> u8
pub const fn out_en_sel(&self) -> u8
Which data bit to use for inline OUT enable
sourcepub fn set_out_en_sel(&mut self, val: u8)
pub fn set_out_en_sel(&mut self, val: u8)
Which data bit to use for inline OUT enable
sourcepub const fn jmp_pin(&self) -> u8
pub const fn jmp_pin(&self) -> u8
The GPIO number to use as condition for JMP PIN. Unaffected by input mapping.
sourcepub fn set_jmp_pin(&mut self, val: u8)
pub fn set_jmp_pin(&mut self, val: u8)
The GPIO number to use as condition for JMP PIN. Unaffected by input mapping.
sourcepub const fn side_pindir(&self) -> bool
pub const fn side_pindir(&self) -> bool
If 1, side-set data is asserted to pin directions, instead of pin values
sourcepub fn set_side_pindir(&mut self, val: bool)
pub fn set_side_pindir(&mut self, val: bool)
If 1, side-set data is asserted to pin directions, instead of pin values
sourcepub const fn side_en(&self) -> bool
pub const fn side_en(&self) -> bool
If 1, the MSB of the Delay/Side-set instruction field is used as side-set enable, rather than a side-set data bit. This allows instructions to perform side-set optionally, rather than on every instruction, but the maximum possible side-set width is reduced from 5 to 4. Note that the value of PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
sourcepub fn set_side_en(&mut self, val: bool)
pub fn set_side_en(&mut self, val: bool)
If 1, the MSB of the Delay/Side-set instruction field is used as side-set enable, rather than a side-set data bit. This allows instructions to perform side-set optionally, rather than on every instruction, but the maximum possible side-set width is reduced from 5 to 4. Note that the value of PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
sourcepub const fn exec_stalled(&self) -> bool
pub const fn exec_stalled(&self) -> bool
If 1, an instruction written to SMx_INSTR is stalled, and latched by the state machine. Will clear to 0 once this instruction completes.
sourcepub fn set_exec_stalled(&mut self, val: bool)
pub fn set_exec_stalled(&mut self, val: bool)
If 1, an instruction written to SMx_INSTR is stalled, and latched by the state machine. Will clear to 0 once this instruction completes.
Trait Implementations§
source§impl Clone for SmExecctrl
impl Clone for SmExecctrl
source§fn clone(&self) -> SmExecctrl
fn clone(&self) -> SmExecctrl
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for SmExecctrl
impl Default for SmExecctrl
source§fn default() -> SmExecctrl
fn default() -> SmExecctrl
source§impl PartialEq for SmExecctrl
impl PartialEq for SmExecctrl
impl Copy for SmExecctrl
impl Eq for SmExecctrl
impl StructuralPartialEq for SmExecctrl
Auto Trait Implementations§
impl Freeze for SmExecctrl
impl RefUnwindSafe for SmExecctrl
impl Send for SmExecctrl
impl Sync for SmExecctrl
impl Unpin for SmExecctrl
impl UnwindSafe for SmExecctrl
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)