-
-
Erfahrener Benutzer
Robotik Einstein
Das was ich jetzt schreib gilt für einen Controller der ATMEL ATMEGA Reihe, sollte aber prinzipiell auch für andere Controller anwendbar sein.
Ich würd es auch mit dem INT 0 bzw. 1 machen.
Wenn einer deiner Counter frei läuft, also immer von 0...max Wert, dann kannst Du ihn in der INT 0 Routine auslesen und den vorherigen Wert aus der letzten INT 0 abziehen.
Der Wert der Subtraktion ist das Maß für deine Radgeschwindigkeit und kann in einem RAM Speicherplatz abgelegt werden.
So kannst Du für alle INT + ( ICP ? ) Quellen den gleichen Timer verwenden.
Bei einem 8 Bit Timer solltest Du in der Timer Overflow Routine noch zusätzliche Speicherplätze mit hochzählen um mehr als 8 ( 16 ) Bit Auflösung und längere Messzeiten zu erhalten.
Für die PWM hätte ich persönlich den OC1A und OC1B verwendet, die beide nur den Timer 1 belegen, wenn dein PWM Mode das zulässt (ohne CTC).
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen