-
-
Erfahrener Benutzer
Roboter Experte
Folgende Lösungansätze:
[list=1][*]du missbraucht einen Timer als Zähler.
Im Klartext: der Zähler zählt immer dann eins weiter, wenn er eine fallende oder steigende Flanke entdeckt. (Infos dazu im Datenblatt -> Timer -> Clock Sources)
Die bisherigen Umdrehungen stehen damit im TCNT? Register. Vom Prinzip her musst du dort nur noch den Überlauf abfangen und kannst die Umdrehungen überall wenn du sie gerade brauchst abrufen.
[*]Du nutzt einen Interupt um die Umdrehungen zu zählen.
Prinzip: INT0 oder INT 1 auf eine fallende oder steigende Flanke konfigurieren und in der ISR die Umdrehungen um 1 erhöhen.
Auch hier kannst du die aktuellen Umdrehungen überall abrufen.
Der Vorteil beider Lösungen:
Sie laufen so nebenbei und kosten nur ein minimum an Rechenzeit.
Ich hoffe dir damit geholfen zu haben.
Grüße,
da Hanni.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen