ich möchte auf einen GPIO Pin am Raspberry Pi, die Impulse innerhalb einer Sekunde zählen und das durchgehend.
Folgenden Code habe ich momentan:
Code: Alles auswählen
import RPi.GPIO as GPIO
import sys
import time
sys.setrecursionlimit(100000)
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
count=0
def call_count(n):
global count
count+=1
try:
while 1:
GPIO.add_event_detect(21, GPIO.RISING)
GPIO.add_event_callback(21, call_count)
time.sleep(1)
GPIO.remove_event_detect(21)
print count
count=0
GPIO.add_event_detect(21, GPIO.RISING)
GPIO.add_event_callback(21, call_count)
except KeyboardInterrupt:
GPIO.cleanup()
Es klingt für mich so, als würde ich den Speicher zumüllen, aber ich wüsste nicht wie. Denn die Variabel count überschreibe ich ja jedes Mal.
Soweit ich mich schon informiert habe, soll der rekursive Programmierstil in Python nicht so gut sein, aber ich habe da keine Ahnung wie ich das sonst lösen kann.
Hat vielleicht jemand eine Idee was der Fehler ist?
LG