Hallo. Ich arbeite an einem Projekt mit einem Zilog Z8 Encore (18,432 MHz) Mikroprozessor. Dabei soll auch eine Art "Uhrenfunktion" implementiert werden. Gut und schön, also einen Timer gesetzt, Abweichung gemessen, neuen Reload berechnet (bzw. die Software das tun lassen). Nun zeigt sich aber, dass es trotzdem ziemlich ungenau läuft. Genauer: Die Abweichung ist in sich nicht konstant. Es passieren z.B. solche Dinge wie: Abweichung am 1. Tag 5 Sekunden. Abweichung nach 3 Tagen: 30 Sekunden, nicht etwa 15. Oder auch: Messung der (initialen) Abweichung über 6 Stunden - es läuft (deutlich!) genauer als wenn die Abweichung über 23 Stunden gemessen wurde (um dann daraus den neuen/richtigen Reload zu berechnen) - was auch nicht normal sein sollte, da eine längere Zeitspanne auch einen genaueren Wert der Abweichung liefern sollte, wenn man annimmt, dass diese linear ist und dass der Chip "gleichmäßig" läuft. Die Software zur Berechnung ist getestet, also wenn man (per Hand) Abweichungen eingibt, wird der korrekte Reload Wert berechnet und die "Messung" kann eigentlich auch nicht schief laufen, und selbst wenn kann ich mir immer noch keinen Reim auf die scheinbare "Nicht-Linearität" machen. Ich habe am Anfang auch die Messung / Berechnung komplett per Hand gemacht und den Wert jeweils fest eingebaut. Mit ähnlichen Ergebnissen. Gleich vorweg: Mein Gebiet ist lediglich die Software und es geht mir auch darum abzuklären ob es daran liegen könnte, bzw. ob jemand von euch etwas Ähnliches auch schon erlebt hat. Irgendwelche Ideen? MfG, Andy M.
Könnte eine Temperaturschwankung dafür verantwortlich sein (nachts kalt)? ----, (QuadDash).
Hab ich mir auch schon gedacht. Aber die Schwankung könnte höchstens (wegen der Heizung) zwischen etwa 21 Grad und etwa 15 Grad liegen und diese 6-7 Grad sollten doch wirklich keinen Unterschied in dieser Größenordnung machen? Dagen spricht auch, dass dann eigentlich die Messvariante mit 23 Stunden Dauer diesen Unterschied bereits "rausgemittelt" haben sollte während eine Messung mit nur 6 Stunden dann Tags oder Nachts deutlich ungenauer laufen sollte. Aber falls jemand die Erfahrung gemacht hätte, dass ein solcher Unterschied tatsächlich eine derartige Schwankung der Taktrate ausmacht, wäre das natürlich ein Ansatz den man näher überprüfen könnte. Danke auf jeden Fall. Andy M.
Ist der Reload in Hardware oder macht das die Software? Bei Software muss man ein bisschen aufpassen.
Z8, lang ist es her. Könnte es evtl. sein, dass der Einsprung in die ISR Hardwarebedingt +/- einen Zyklus haben kann? Nur als Idee, bei den PICs ist es so.
Der Reload ist sowohl Hard- als auch Software. Der Software Reload bleibt immer gleich (1024) und der Hardware Reload wird entsprechende modifiziert (ursprünglich ist er 17999). Die Berechnungen richten sich im Grund nach den Erklärungen die man auch hier irgendwo im Forum finden konnte ("timebase.zip" - an den Post kann ich mich nicht mehr genau erinnern), also, wenn man die Berechnungsformel ein bisschen umstellt läuft es im Grunde auf das Gleiche raus, was da beschrieben wird. Es wird auch einmal pro Sekunde ein Ausgleichs Reloadwert geladen um evtl. krumme Ergebnisse zu berücksichtigen. Aber selbst wenn der Einsprung in die ISR +/- 1 Zyklus versetzt wäre (angenommen es wäre nicht immer derselbe Wert - das ist es was gemeint war, nehme ich an?), dann würde also im ungünstigsten Fall jedesmal 1 Zyklus dazukommen oder fehlen, was niemals eine Abweichung von 5 Sekunden nach knapp 24 h erklären könnte (bei den 18 MHz sollte es sich da noch im ms Bereich abspielen). Oder habe ich das jetzt missverstanden? Andy M.
Na ja, das mit dem Einsprung war nur so ne Idee( hast Du richtig verstanden). Das könnte evtl. die unregelmäsigen Abweichungen erklären. Ob das beim Z8 wirklich sein könnte? Wie gesagt, als ich mit dem Z8 gearbeitet habe ist schon verdammt lang her. War übrigens vor ca. 16 Jahren mein erster Kontakt mit einem MC. Aber schön zu lesen, dass die immer noch nicht ausgestorben sind. Das Arbeiten damit hat echt Spass gemacht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.