mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ungleichmäßiges Chiptempo?


Autor: Andreas Mühling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte eine Temperaturschwankung dafür verantwortlich sein (nachts
kalt)?

----, (QuadDash).

Autor: Andreas Mühling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der Reload in Hardware oder macht das die Software?
Bei Software muss man ein bisschen aufpassen.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas Mühling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.