Der Code ist noch reichlich unübersichtlich, und auch noch nicht ganz Fehlerfrei. Bis jetzt geht es mit dem Umschalten von Sensor 2 vor und beim Umschalten von Sensor1 nur zurück. Das kann Fehler geben, wenn das Rad etwas vor und zurück geht, um den einen Übergang.
Es muss also bei einer Änderung von Sensor1 entweder vor oder zurück gehen, abhängig davon ob die beiden Sensoren 1 und 2 gleich sind oder nicht. So ähnlich dann auch mit einer Änderung an Sensor2 (wobei das ggf. optional ist wenn weniger Auflösung reicht).
Das speichern der alten Zustände kann man direkt durch Zuweisung machen, also etwas als
Zustandhallsensor1alt = Zustandhallsensor1 am Ende der ISR.
Timer 1 erlaubt auch eine variable Interruptsfrequenz ohne nachladen von Hand.
Lesezeichen