Heyho,
kurzes Update:
Habe nun auch eine kurze Anleitung für die Interrupts mittels RPi.GPIO online:
http://kampis-elektroecke.de/?page_id=3740
Vielleicht hilft es dem ein oder anderen ja
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)
Geändert von Kampi (12.04.2013 um 18:13 Uhr)
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Heyho,
kurzes Update:
Habe nun auch eine kurze Anleitung für die Interrupts mittels RPi.GPIO online:
http://kampis-elektroecke.de/?page_id=3740
Vielleicht hilft es dem ein oder anderen ja
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo zusammen,
ich beschäftige mich seit heute mit dem Thema Raspberry Pi und versuche gerade herauszufinden, ob der RP für meine Anwendungen geeignet ist, bevor ich mir einen zulege.
Ziel ist eine Anwendung, die über eine QT-Oberfläche verfügt und in C++ geschrieben ist. Es sollen Interrupts in Form von steigenden und fallenden Flanken im Abstand von 100us erkannt werden. Habt ich schon mal getestet, ob der RP das packt ?
Danke für die Antwort.
Grüße,
Fabian
Lesezeichen