TimerInterrupt

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Zusammen,

    ich hab schon Google ne halbe Ewigkeit bemüht, konnte aber noch keine zufriedenstellenden Lösung finden.
    Ich benötige sowas wie ein Timerinterrupt.

    Spricht, eine Function soll nach einer bestimmten Zeit aufgerufen werden, dabei soll die Bearbeitung des restliches Codes aber nicht unterbrochen werden.

    Beispiel:
    Wenn der Taster betätigt wird, woll eine LED leuchten.
    Parallel soll alle 20 Sekunden eine andere LED kurz aufblinken.

    die Erweiterung wäre, dass die andere LED 5 Sekunden nach dem Druck auf den Taster blinkt, zwischendurch aber weiter auf den Taster gedrückt werden kann, womit die erste LED immer wieder leuchtet (und/oder der Timer für die zweite LED aber erst neu gestartet wird, wenn die Zweite ihren Blinkvorgang abgeschlossen hat und/oder eben immer nach dem Druck auf den Taster 5 Sekunden später blinkt)

    Ich hoffe, ihr versteht, was ich meine.

    Könnt ihr mir hier helfen?

  • [code=php]
    #!/usr/bin/python3
    import time
    import threading
    import RPi.GPIO as GPIO

    LED1pin = 17
    LED2pin = 22
    LED3pin = 24

    LED1period = 1
    LED2period = 2
    LED3period = 3

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(LED1pin, GPIO.OUT)
    GPIO.setup(LED2pin, GPIO.OUT)
    GPIO.setup(LED3pin, GPIO.OUT)

    def LED(pin, period):
    while running:
    time.sleep(period)
    print("%s Sekunde" % period)

    try:
    running = True
    LED1_thread = threading.Thread(target=LED, args=[LED1pin, LED1period])
    LED1_thread.start()
    LED2_thread = threading.Thread(target=LED, args=[LED2pin, LED2period])
    LED2_thread.start()
    LED3_thread = threading.Thread(target=LED, args=[LED3pin, LED3period])
    LED3_thread.start()
    #keep script running
    while True:
    time.sleep(1)
    except (KeyboardInterrupt, SystemExit):
    running = False
    print("\nschliesse Programm...\n")
    [/php]

    Zu dem Script brauchst du dir dann eigentlich nur noch etwas für deine Taster dazu basteln. Siehe dazu FAQ --> Nützliche Links / Linksammlung --> Interrupt --> #6

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!