-
-
Erfahrener Benutzer
Robotik Einstein
Bei meiner letzten Drehgeber Routine hab ich den Drehgeber im Timer 0 Overflow Interrupt gemacht, der alle 2ms abgefragt wird.
Der letzte Zustand wird in einer Variable abgespeichert.
Nur wenn sich daran was geändert hat wird eine Auswerte Routine ausgeführt, die Abhängig vom Ursprungszustand eine weitere Variable hoch oder runter zählt. Es werden nur Ereignisse gezählt, die in den Grey Code passen.
Dadurch findet auch gleich eine Entprellung des Drehgebers statt.
Das Ganze liesse sich relativ einfach auf 2 oder noch mehr Drehgeber erweitern.
Die Drehgeberfrequenz darf dabei allerdings nicht zu hoch werden, sonst könnten Impulse "übersehen" werden.
Man könnte die Timerintervalle noch weiter verkürzen um das zu verhindern.
Bei mir wird der Drehimpulsgeber von Hand bedient, was ja nun auch nicht sehr schnell geht.
Den Codeschnipsel kannst Du gerne haben, der ist allerdings in "C".
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen