-
-
Erfahrener Benutzer
Roboter Genie
Durch geschickte Wahl der Konstanten, des TimerPrescalers, des µCTaktes SOWIE der möglich messbaren Zeitspanne ist es möglich, die Division in eine Subtraktion zu überführen.
Geschickt heißt, alle benutzten Werte müssen 8Bit breit sein und der gesamten GeschwBereich abdecken und dabei die Geschw in einer geeigneten Einheit darstellen.
Beispiel:
v_min = 255 TimerWerte entsprechen 1cm/s
v_max = 1 TimerWert entspricht 255cm/s
255 und 1 sind die 8Bit TimerWerte der Messung.
Dann entspricht:
v = 255-TimerWert der aktuellen Geschwindigkeit in cm/s.
Bei zB TimerWert = 64 --> 255-63 = 192cm/s
oder TimerWert = 196 --> 255-196 = 59 cm/s
Letztendlich müsstest Du in diesem Beispiel dafür sorgen, dass 255 Timerzählung der min Geschw entsprechen und das kann recht viel sein. Eventuell wird ein Softwareteiler notwendig, der den TimerPrescaler zusätzlich teilt. Aber das alles hängt von den genauen Bedingungen ab.
Wenn Du keinen Softwareteiler benutzen willst, kannst Du einen anderen Timer dazu verwenden, die minimale Auflösung darzustellen, in dem Du dessen CompareMatches während der Zeitmessung zählst und anschließend umrechnest. Damit ist es möglich genauer zu messen, weil Du am Ende Anzahl der CompMatches hast UND den letzten TimerWert des 2. Zählers. Aber das bringt Dir nichts hinsichtlich Rechenzeit.
Gruß
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen