Type Alias rp2040_pac::sio::interp0_ctrl_lane0::R

source ·
pub type R = R<INTERP0_CTRL_LANE0_SPEC>;
Expand description

Register INTERP0_CTRL_LANE0 reader

Aliased Type§

struct R { /* private fields */ }

Implementations§

source§

impl R

source

pub fn shift(&self) -> SHIFT_R

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

source

pub fn mask_lsb(&self) -> MASK_LSB_R

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

source

pub fn mask_msb(&self) -> MASK_MSB_R

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(&self) -> SIGNED_R

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(&self) -> CROSS_INPUT_R

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(&self) -> CROSS_RESULT_R

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

source

pub fn add_raw(&self) -> ADD_RAW_R

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

source

pub fn force_msb(&self) -> FORCE_MSB_R

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 blend(&self) -> BLEND_R

Bit 21 - Only present on INTERP0 on each core. If BLEND mode is enabled:

  • LANE1 result is a linear interpolation between BASE0 and BASE1, controlled
    by the 8 LSBs of lane 1 shift and mask value (a fractional number between
    0 and 255/256ths)
  • LANE0 result does not have BASE0 added (yields only the 8 LSBs of lane 1 shift+mask value)
  • FULL result does not have lane 1 shift+mask value added (BASE2 + lane 0 shift+mask)
    LANE1 SIGNED flag controls whether the interpolation is signed or unsigned.
source

pub fn overf0(&self) -> OVERF0_R

Bit 23 - Indicates if any masked-off MSBs in ACCUM0 are set.

source

pub fn overf1(&self) -> OVERF1_R

Bit 24 - Indicates if any masked-off MSBs in ACCUM1 are set.

source

pub fn overf(&self) -> OVERF_R

Bit 25 - Set if either OVERF0 or OVERF1 is set.