2022-03-20 22:27:49 +00:00

38 lines
777 B
Python

"""Count down"""
import rp2pio
import adafruit_pioasm
import array
program = """
.program counting_down
set y, 21 ; set a value in y
; now send it to be printed
mov isr, y
push noblock ; and use PUSH to put it on the receive FIFO
jmp y--, fake ; subtract from it
fake:
; now send it to be printed
mov isr, y
push noblock ; and use PUSH to put it on the receive FIFO
"""
assembled = adafruit_pioasm.assemble(program)
## set up a statemachine
sm = rp2pio.StateMachine(
assembled,
frequency=2000,
)
buffer = array.array("I", [0])
# read the data
sm.readinto(buffer)
print("Before {0} 0b{0:08b} 0x{0:x}".format(buffer[0]))
# read the data
sm.readinto(buffer)
print("After {0} 0b{0:08b} 0x{0:x}".format(buffer[0]))