Heyho,
da ich schon öfters nach Interrupts für das Raspberry Pi gefragt wurde, wollte ich hier mal eine Lösung präsentieren.
Dieses kleine Pythonprogramm aktiviert den Interrupt an GPIO 24 und ruft bei jeder steigenden Flanke die ISR auf.
Ein Software Debounce ist ebenfalls eingebaut.
Ach eine Sache noch....dieses Programm funktioniert erst ab einer RPi.GPIO Version von 0.5.2a.Code:import RPi.GPIO as GPIO import time # Variable Counter definieren Counter = 0 # Variable zum debouncen Debounce = 0 # SoC als Pinreferenz waehlen GPIO.setmode(GPIO.BCM) # Pin 24 vom SoC als Input deklarieren und Pull-Down Widerstand aktivieren GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) # ISR def Interrupt(channel): # Zugriff auf globale Variablen global Counter # Counter um eins erhoehen und ausgeben Counter = Counter + 1 print "Counter " + str(Counter) # Interrupt Event hinzufuegen. Pin 24, auf steigende Flanke reagieren und ISR "Interrupt" deklarieren GPIO.add_event_detect(24, GPIO.RISING, callback = Interrupt, bouncetime = 200) # Endlosschleife while True: time.sleep(1)







Zitieren

Lesezeichen