2021-01-20 13:34:08 +00:00
|
|
|
# Example using PIO to turn on an LED via an explicit exec.
|
2023-02-07 04:03:14 +00:00
|
|
|
# Note: this does not work on Pico W because it uses Pin(25) for LED output.
|
2021-01-20 13:34:08 +00:00
|
|
|
#
|
|
|
|
# Demonstrates:
|
|
|
|
# - using set_init and set_base
|
|
|
|
# - using StateMachine.exec
|
|
|
|
|
2023-08-09 09:14:33 +01:00
|
|
|
# ruff: noqa: F821 - @asm_pio decorator adds names to function scope
|
|
|
|
|
2021-01-20 13:34:08 +00:00
|
|
|
import time
|
|
|
|
from machine import Pin
|
|
|
|
import rp2
|
|
|
|
|
2023-02-02 00:51:48 +00:00
|
|
|
|
2021-01-20 13:34:08 +00: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)")
|