diff --git a/interp/interp.py b/interp/interp.py new file mode 100644 index 0000000..182af0d --- /dev/null +++ b/interp/interp.py @@ -0,0 +1,26 @@ +# demonstrate driving low level rp2040 functions from Python by +# direct register access - see datasheet at +# https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf +# for details + +from machine import mem32 + +# base address of SIO +SIO_BASE = 0xD0000000 + +# INTERP0 registers +INTERP0_ACCUM0 = SIO_BASE + 0x80 +INTERP0_BASE0 = SIO_BASE + 0x88 +INTERP0_POP_LANE0 = SIO_BASE + 0x94 +INTERP0_CTRL_LANE0 = SIO_BASE + 0xAC + +# initialise lane 0 on interp: set that we are using all 32 bits +mem32[INTERP0_CTRL_LANE0] = 0x1F << 10 + +# set up 9 x table example - write to accum[0] and base[0] registers +mem32[INTERP0_ACCUM0] = 0 +mem32[INTERP0_BASE0] = 9 + +# read pop register 10 times +for j in range(10): + print(mem32[INTERP0_POP_LANE0]) \ No newline at end of file