2021-01-20 08:34:08 -05:00
|
|
|
# Example using PIO to turn on an LED via an explicit exec.
|
2023-02-06 23:03:14 -05:00
|
|
|
# Note: this does not work on Pico W because it uses Pin(25) for LED output.
|
2021-01-20 08:34:08 -05:00
|
|
|
#
|
|
|
|
# Demonstrates:
|
|
|
|
# - using set_init and set_base
|
|
|
|
# - using StateMachine.exec
|
|
|
|
|
2023-08-09 04:14:33 -04:00
|
|
|
# ruff: noqa: F821 - @asm_pio decorator adds names to function scope
|
|
|
|
|
2021-01-20 08:34:08 -05:00
|
|
|
import time
|
|
|
|
from machine import Pin
|
|
|
|
import rp2
|
|
|
|
|
2023-02-01 19:51:48 -05:00
|
|
|
|
2021-01-20 08:34:08 -05:00
|
|
|
# Define an empty program that uses a single set pin.
|
|
|
|
@rp2.asm_pio(set_init=rp2.PIO.OUT_LOW)
|
|
|
|
def prog():
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
# Construct the StateMachine, binding Pin(25) to the set pin.
|
|
|
|
sm = rp2.StateMachine(0, prog, set_base=Pin(25))
|
|
|
|
|
|
|
|
# Turn on the set pin via an exec instruction.
|
|
|
|
sm.exec("set(pins, 1)")
|
|
|
|
|
|
|
|
# Sleep for 500ms.
|
|
|
|
time.sleep(0.5)
|
|
|
|
|
|
|
|
# Turn off the set pin via an exec instruction.
|
|
|
|
sm.exec("set(pins, 0)")
|