Hallohallo,
mein Raspberry kriegt Daten von einem Hall Sensor, hier muss die Auflösung bei der Abfrage recht hoch (0.005s) liegen, außerdem von einem Accelerometer. Hier reicht es, alle 0.25s einen Wert abzufragen.
Ich bin nicht so richtig fit (anders gesagt: Python Anfänger) und frage mich daher:
Ist es der beste oder dümmste Weg, zwei While-Loops nach diesem Rezept parallel laufen zu lassen?
Gibt es die Möglichkeit in Python, dass ich nicht drauf warte, wenn ein Signal high geschaltet wird, sondern dass der Pi das "einfach so" mitkriegt? Mir schwebt da nach gefährlichem Halbwissen etwas wie ein Interrupt vor, aber ich finde hierzu nichts, was mir weiter hilft und bin mir daher nicht sicher, ob ich hier auf dem richtigen Weg bin. Die Abfragen in der Frequenz beim Hall Sensor sind erstaunlich CPU-intensiv.
Wie würdet ihr vorgehen?
Viele Grüße
Jonas
(genauigkeit natürlich wird beim Aufruf angegeben)
def hall_messung(genauigkeit):
while True:
hallActive = False
start = timer()
if( GPIO.input( HALL_SENSOR ) == False ):
hallActive = True
if (leuchtet == False):
leuchtet = True
start = timer()
abstand = start-end
end = timer()
upm = 60/abstand
#print("UPM: " + str(upm))
#print(abstand)
lcd_send_byte(LCD_LINE_1, LCD_CMD)
lcd_message("UPM: " + str(upm))
else:
leuchtet = False
hallActive = False
GPIO.output( GREEN_LED, hallActive )
time.sleep(genauigkeit)
Alles anzeigen