www.mikrocontroller.net

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


Autor: Frank (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist definitiv was an Deiner Timerroutine faul.

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


Peter

Autor: Stefan (Gast)
Datum:

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

Stefan

Autor: Frank (Gast)
Datum:

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

Autor: BernhardT (Gast)
Datum:

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

Autor: UBoot-Stocki (Gast)
Datum:

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