Struct rp_pac::pio::regs::SmExecctrl
source · #[repr(transparent)]pub struct SmExecctrl(pub u32);
Expand description
Execution/behavioural settings for state machine 2
Tuple Fields§
§0: u32
Implementations§
source§impl SmExecctrl
impl SmExecctrl
sourcepub fn set_status_n(&mut self, val: u8)
pub fn set_status_n(&mut self, val: u8)
Comparison level for the MOV x, STATUS instruction
sourcepub const fn status_sel(&self) -> SmExecctrlStatusSel
pub const fn status_sel(&self) -> SmExecctrlStatusSel
Comparison used for the MOV x, STATUS instruction.
sourcepub fn set_status_sel(&mut self, val: SmExecctrlStatusSel)
pub fn set_status_sel(&mut self, val: SmExecctrlStatusSel)
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<SmExecctrl> for SmExecctrl
impl PartialEq<SmExecctrl> for SmExecctrl
source§fn eq(&self, other: &SmExecctrl) -> bool
fn eq(&self, other: &SmExecctrl) -> bool
self
and other
values to be equal, and is used
by ==
.