Forum: Compiler & IDEs 4MHz Quarz ungenau auf 2-3 Sec pro Minute


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frank (Gast)


Lesenswert?

Als Einarbeitungsprojekt wurde eine Uhr gewählt. Das Display besteht aus
4x 7 Segment Anzeigen mit gemeinsamem 74LS47. Dieser wird im
Multiplexbetrieb per PortB angesprochen. Um neben der Steuerung vom Mux
eine saubere Zeitbasis zu erhalten habe ich den Timer 0 im TIM0_OVF
IRQ-Modus eingesetzt. Dieser zählt beim 256er Teiler 61 mal bis zum
Überlauf und dann noch 9 Schritte weiter.

Als Zeitbasis wird ein 4MHz Quarz (Standardmodell von Reichelt) gewählt
und auf dem STK500 bestückt. Die Uhr geht pro Minute auf 2-3 Sekunden
nach.

Kann die Toleranz am unabgeglichenen Quarz (ohne Trimmer direkt auf dem
STK500) so groß sein oder ist eher ein Fehler im Code verantwortlich?

von Peter D. (peda)


Lesenswert?

Da ist definitiv was an Deiner Timerroutine faul.

Ein 4MHz Quarz darf nicht mehr als +/-200Hz abweichen.


Peter

von Stefan (Gast)


Lesenswert?

Oder Du benutzt garnicht den externen Quarz, sondern den internen
RC-Oszillator. Der hat solche Schwankungen locker. Sind alle Fuses
richtig gesetzt?

Stefan

von Frank (Gast)


Lesenswert?

Benutze den AT90S8515. Im Datenblatt habe ich keinen Hinweis auf den RC
Oscillator gefunden. Dies scheinen nur die moderneren Typen zu
besitzen. Der Jumper auf dem STK ist okay.

Folglich muß was an meinem Code fehlerhaft sein. Versuche, den Fehler
zu finden.

von BernhardT (Gast)


Lesenswert?

Wiso stimmt doch: 0,25 usec *255*(255+9)*61 = ca. 1,02663 sec. also 2-3
% zu langsamm ;-)
Ne mal im ernst, schau es dir doch einfach mal auf dem Simulator  (z.B.
AVR-Studio an) - da kannst du auch die Zeit mit stoppen lassen.
Gruß Bernhard

von UBoot-Stocki (Gast)


Lesenswert?

@BernhardT

Hmmm...

irgendwie kann ich dieser Formel nicht folgen ?!

Bitte erkläre mir was Du mit +9 und *61 meinst !

Gruß

UBoot-Stocki

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]
  • [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.