-
-
Erfahrener Benutzer
Robotik Einstein
Eine Impulszählung in einem Timer ist bei so wenigen Impulsen nicht sinnvoll. Andererseits ist auch die maximale Impulsrate nicht sonderlich hoch.
Der Weg von Besserwessi mit der Periodendauermessung ist, auch meiner Meinung nach, der Goldene.
Wenn dein Sensor für eine Umdrehung 2,5 sek braucht, kannst Du nach 0,5sek keinen neuen Wert im Display haben.
Das geht im Idealfall bei einer Geschwindigkeit von 5km/h.
Denn erst ab da kommt auch alle 0,5sek ein Impuls vom Geber.
Eventuell kannst Du das auch so lösen, das die Displayrefreshrate zuerst vom Impuls des Gebers abhängt und dann bei höheren Geschwindigkeiten mit einem Timer auf 0,5 sek eingestellt wird.
Das kann man ja sehr schön über die Werte des Zählers, der für die Periodendauermessung zuständig ist erkennen.
Bei Zeiten über 2,5 sek sollte aber dann eine Overflow Routine zuschlagen, die dann die Geschwindigkeit auf 0 setzt.
Ich lass für solche Zwecke den Timer frei laufen und ziehe den vorherigen Zählerstand vom aktuellen ab.
Da für die Aktion mit ziemlicher Sicherheit ein Überlaufzähler verwendet wird, der in der Timer Overflow Routine hochzählt wird, ist die Benutzung des Input Capture Registers im dazugehörigen Interrupt sinnvoll.
Das hochgezählte Register des Timer Overflow Interrupts wird natürlich in die Berechnung mit einbezogen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen