Ungleichmäßiges Chiptempo?

Gast #160421
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.
Gast
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.
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.