Hallo,
ich versuche verzweifelt nach einer Möglichkeit, mittels Interrupt eine Variable zu setzen
Folgenden nicht funktionierenden Code habe ich:
#!/usr/bin/env python
from __future__ import absolute_import, division, print_function
import time
import RPi.GPIO as IO
IO.setwarnings(False)
IO.setmode(IO.BCM)
Taster=17
IO.setup(Taster, IO.IN)
b=0
def Switch(channel):
global b
b=60
return
def main():
IO.add_event_detect(Taster, IO.FALLING, callback=Switch, bouncetime=500)
Switch(0)
print (b)
while True:
print ("b=",b)
time.sleep(1)
#b=b-1
#Hier kommt weiterer Programmcode
if __name__ == '__main__':
main()
Alles anzeigen
Folgendes soll passieren:
Wenn am Pin17 ein Signal anliegt, soll eine Variable gesetzt werden.
Wurde 60 Sek. kein Signal am Pin17 empfangen, soll das Programm fortgesetzt werden.
Löse ich den Interrupt aus, wird die Variable auch richtig angezeigt.
Sobald ich #b=b-1 aktiviere, kommt es zum Fehler.
Ich habe viel nachgelesen und habe auch gefunden, dass es so nicht funktioniert. Leider habe ich keine Ahnung, wie ich das Problem lösen kann.
Gibt es eine Möglichkeit, der Interrupt-Routine eine 2. Variable zu übergeben?
Ich habe es selbst leider nicht geschafft.
Für eine Hilfe zur Lösung meines Problems wäre ich dankbar.
MfG LK61