-
-
Erfahrener Benutzer
Robotik Visionär
Hi,
ich habe einen Timer für COMPA-Interrupt gebaut, der mir alle 50 µs einen Interrupt liefert. Die ISR zählt eine Variable hoch bis 20000 und bei diesem Wert wieder auf 1 mit Hochzählen einer Sekundenvariable. Beide sind uint_16. Damit kann ich auf 50 µs genau, das ist 1/20 Millisekunde, länger als einen halben Tag messen. Wenns noch genauer werden soll, müsste ich den aktuellen Timerstand auslesen. Beide Variablen können zwischen sei(); und cli(); sauber ausgelesen werden und liefern mir für Drehzahlmessung und -regelung von Motoren, Geschwindigkeitsberechnung eines Fahrzeugs und eben alle zeitrelevanten Operationen eine präzise "Bordzeit". Sogar ein Servo wird von der ISR etwas tricky aber recht codesparend angefahren.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen