summaryrefslogtreecommitdiffstatshomepage
path: root/examples/switch.py
diff options
context:
space:
mode:
authorMetallicow <metaliobovinus@gmail.com>2014-06-01 08:18:13 -0600
committerMetallicow <metaliobovinus@gmail.com>2014-06-01 08:18:13 -0600
commit9500e98433e274acd1b300094ae56d9389b22a8c (patch)
treef93485e1f8503b8bba346e6ce71d46048becbd34 /examples/switch.py
parentf94cc975a2aca94afc0a8df7bbdeaa276ca5b5a7 (diff)
downloadmicropython-9500e98433e274acd1b300094ae56d9389b22a8c.tar.gz
micropython-9500e98433e274acd1b300094ae56d9389b22a8c.zip
__doc__ switch, make importable, and easy to test
Diffstat (limited to 'examples/switch.py')
-rw-r--r--examples/switch.py51
1 files changed, 34 insertions, 17 deletions
diff --git a/examples/switch.py b/examples/switch.py
index d2bdad040e..200caa4a4c 100644
--- a/examples/switch.py
+++ b/examples/switch.py
@@ -1,8 +1,18 @@
-"""
+__doc__ = """
switch.py
=========
-Light up all the leds when the USR switch on the pyboard is pressed.
+Light up some leds when the USR switch on the pyboard is pressed.
+
+Example Usage::
+
+ Micro Python v1.0.1 on 2014-05-12; PYBv1.0 with STM32F405RG
+ Type "help()" for more information.
+ >>> import switch
+ >>> switch.run_loop([2, 3])
+ Loop started.
+ Press Ctrl+C to break out of the loop.
+
"""
import pyb
@@ -12,18 +22,25 @@ red_led = pyb.LED(1)
green_led = pyb.LED(2)
orange_led = pyb.LED(3)
blue_led = pyb.LED(4)
-leds = [red_led, green_led, orange_led, blue_led]
-
-while 1:
- if switch():
- ## red_led.on()
- ## green_led.on()
- ## orange_led.on()
- ## blue_led.on()
- [led.on() for led in leds]
- else:
- ## red_led.off()
- ## green_led.off()
- ## orange_led.off()
- ## blue_led.off()
- [led.off() for led in leds]
+all_leds = [red_led, green_led, orange_led, blue_led]
+
+def run_loop(use_leds=[]):
+ """
+ Start the loop.
+
+ :param `use_leds`: Which leds to light up upon switch press.
+ :type `use_leds`: list of integers [1-4]
+ """
+ print('Loop started.\nPress Ctrl+C to break out of the loop.')
+ leds = [all_leds[i - 1] for i in use_leds]
+ while 1:
+ try:
+ if switch():
+ [led.on() for led in leds]
+ else:
+ [led.off() for led in leds]
+ except OSError: # VCPInterrupt # Ctrl+C in interpreter mode.
+ break
+
+if __name__ == '__main__':
+ run_loop()