zwei zeitbasen synchronisieren. aber wie?
-
hallo,
ich hab zwei timer. der eine ist 'ne batteriegepufferte RTC die im sekundentakt weitertickert, der andere ist ein freilaufender millisekunden-zähler und fängt bei 0 an, wenn das gerät eingeschaltet wird.
ich brauche nun die uhrzeit (von der RTC) und zusätzlich noch millisekunden (z.b. von dem zähler). leider laufen beide asynchron. kennt jemand einen trick, wie man den millisekunden-counter irgendwie in die uhrzeit mit einbringen kann? geht bestimmt ganz einfach, aber ich komme irgend wie nicht drauf.
danke für alle tips.
-
hol dir von beiden paarmal hintereinander den aktuellen stand, vielleicht im abstand von 1000 ms und mittel die relativen abweichungen. das ist dann der startzeitpunkt, von dem aus du dann jederzeit die beiden timer "synchronisieren" kannst.
-
hi, danke für die antwort. ich hab's schon so ähnlich gemacht.
beim start wird in schneller folge die RTC ausgelesen, um einen sekunden-tick abzufangen. dann wird sofort der aktuelle millisekunden-zählerwert gespeichert.
jedesmal, wenn ich nun einen millisekunden-genauen timestamp erzeugen will, nehme ich den aktuellen RTC-wert und vom millisekunden-zählerwert (der ja inzwischen auch weitergelaufen ist) wird der vorher gespeicherte wert abgezogen und der rest einer division durch 1000 genommen. wahrscheinlich wird in ein paar tagen eine abweichung spürbar sein, weil beide zeitbasen über getrennte quarze getaktet werden, aber so lange muss es nicht ununterbrochen laufen.
-
Kannst den Sekundentimer einfach an einen Capture-Pin hängen und bei jeder Flanke den Wert des Millisekundetimers einfangen?
-
Tim schrieb:
Kannst den Sekundentimer einfach an einen Capture-Pin hängen und bei jeder Flanke den Wert des Millisekundetimers einfangen?
hi Tim,
so ähnlich, beide timer sind auf einem chip. ich könnte die RTC so konfigurieren, dass sie nach einer gewissen zeit 'nen interrupt auslöst und damit den nullpunkt dieses 'millisekunden-ausgleichswertes' justieren. das wird zwar nur selten nötig sein, ist aber eine gute idee, wenn's bis in alle ewigkeit genau sein soll.