File: switch.py

package info (click to toggle)
giac 1.9.0.93%2Bdfsg2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 117,732 kB
  • sloc: cpp: 404,272; ansic: 205,462; python: 30,548; javascript: 28,788; makefile: 17,997; yacc: 2,690; lex: 2,464; sh: 705; perl: 314; lisp: 216; asm: 62; java: 41; xml: 36; sed: 16; csh: 7; pascal: 6
file content (45 lines) | stat: -rw-r--r-- 1,029 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"""
switch.py
=========

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()
    Loop started.
    Press Ctrl+C to break out of the loop.

"""

import pyb

switch = pyb.Switch()
red_led = pyb.LED(1)
green_led = pyb.LED(2)
orange_led = pyb.LED(3)
blue_led = pyb.LED(4)
all_leds = (red_led, green_led, orange_led, blue_led)

def run_loop(leds=all_leds):
    """
    Start the loop.

    :param `leds`: Which LEDs to light up upon switch press.
    :type `leds`: sequence of LED objects
    """
    print('Loop started.\nPress Ctrl+C to break out of the loop.')
    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()