pico-micropython-examples/interp/interp.py

26 wiersze
738 B
Python

# 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 = 0xD0000000 + 0x80
INTERP0_BASE0 = 0xD0000000 + 0x88
INTERP0_POP_LANE0 = 0xD0000000 + 0x94
INTERP0_CTRL_LANE0 = 0xD0000000 + 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])