Type Alias rp2040_pac::sio::interp1_ctrl_lane0::W

source ·
pub type W = W<INTERP1_CTRL_LANE0_SPEC>;
Expand description

Register INTERP1_CTRL_LANE0 writer

Aliased Type§

struct W { /* private fields */ }

Implementations§

source§

impl W

source

pub fn shift(&mut self) -> SHIFT_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bits 0:4 - Logical right-shift applied to accumulator before masking

source

pub fn mask_lsb(&mut self) -> MASK_LSB_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bits 5:9 - The least-significant bit allowed to pass by the mask (inclusive)

source

pub fn mask_msb(&mut self) -> MASK_MSB_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bits 10:14 - The most-significant bit allowed to pass by the mask (inclusive)
Setting MSB < LSB may cause chip to turn inside-out

source

pub fn signed(&mut self) -> SIGNED_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bit 15 - If SIGNED is set, the shifted and masked accumulator value is sign-extended to 32 bits
before adding to BASE0, and LANE0 PEEK/POP appear extended to 32 bits when read by processor.

source

pub fn cross_input(&mut self) -> CROSS_INPUT_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bit 16 - If 1, feed the opposite lane’s accumulator into this lane’s shift + mask hardware.
Takes effect even if ADD_RAW is set (the CROSS_INPUT mux is before the shift+mask bypass)

source

pub fn cross_result(&mut self) -> CROSS_RESULT_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bit 17 - If 1, feed the opposite lane’s result into this lane’s accumulator on POP.

source

pub fn add_raw(&mut self) -> ADD_RAW_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bit 18 - If 1, mask + shift is bypassed for LANE0 result. This does not affect FULL result.

source

pub fn force_msb(&mut self) -> FORCE_MSB_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bits 19:20 - ORed into bits 29:28 of the lane result presented to the processor on the bus.
No effect on the internal 32-bit datapath. Handy for using a lane to generate sequence
of pointers into flash or SRAM.

source

pub fn clamp(&mut self) -> CLAMP_W<'_, INTERP1_CTRL_LANE0_SPEC>

Bit 22 - Only present on INTERP1 on each core. If CLAMP mode is enabled:

  • LANE0 result is shifted and masked ACCUM0, clamped by a lower bound of
    BASE0 and an upper bound of BASE1.
  • Signedness of these comparisons is determined by LANE0_CTRL_SIGNED
source

pub unsafe fn bits(&mut self, bits: u32) -> &mut Self

Writes raw bits to the register.

§Safety

Passing incorrect value can cause undefined behaviour. See reference manual