summaryrefslogtreecommitdiff
path: root/examples/rp2/pio_exec.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2021-01-21 00:34:08 +1100
committerDamien George <damien@micropython.org>2021-01-30 00:42:29 +1100
commit469345e7285128739e2934e7934e107ffda79fc1 (patch)
treea410ce2d427770a01d5b6f4d1b3ff2fb342cd94b /examples/rp2/pio_exec.py
parentef3ee7aa1005cd1f15c2144d4b46feb792ab3185 (diff)
rp2: Add new port to Raspberry Pi RP2 microcontroller.
This commit adds a new port "rp2" which targets the new Raspberry Pi RP2040 microcontroller. The build system uses pure cmake (with a small Makefile wrapper for convenience). The USB driver is TinyUSB, and there is a machine module with most of the standard classes implemented. Some examples are provided in the examples/rp2/ directory. Work done in collaboration with Graham Sanderson. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'examples/rp2/pio_exec.py')
-rw-r--r--examples/rp2/pio_exec.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/examples/rp2/pio_exec.py b/examples/rp2/pio_exec.py
new file mode 100644
index 000000000..d8cbc33ef
--- /dev/null
+++ b/examples/rp2/pio_exec.py
@@ -0,0 +1,27 @@
+# Example using PIO to turn on an LED via an explicit exec.
+#
+# Demonstrates:
+# - using set_init and set_base
+# - using StateMachine.exec
+
+import time
+from machine import Pin
+import rp2
+
+# 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)")