PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Raspberry Pi Interrupt



Kampi
12.04.2013, 16:23
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.



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)


Ach eine Sache noch....dieses Programm funktioniert erst ab einer RPi.GPIO Version von 0.5.2a.

Kampi
24.04.2013, 12:03
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 :)

blue5555
08.09.2013, 14:28
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