Quarzabweichung 800ppm oder Programmfehler?

Gast #4469888
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Arduino Mega 2560 Board, ich programmiere aber mit dem 
Atmel Studio ganz normal, also einen AtMega2560.

Ich habe einen Timer, der jede ms abläuft im CTC Modus, sich also selbst 
bei Vergleichswert zurücksetzt.

In der ISR Routine passiert folgendes:
1
ISR(TIMER1_COMPA_vect){
2
  xx++;
3
  if(xx>=1000)
4
  {  xx=0;
5
    second++;
6
    if(second>=60)
7
    {  minute++;
8
      second=0;
9
      if(minute>=60)
10
      {  hour++;
11
        minute=0;
12
      }
13
    }
14
  }
15
}

Ich habe eine Abweichung von ca. 60 Sekunden Pro Tag. Macht also ~ 
800ppm.
Der Timer läuft mit 1/64 CPU Takt ( 16MHz ) und der Vergleichswert ist 
249, also jede ms ein Compare Interrupt.

Auf dem Board ist ein Quarzoszillator drauf.

Habe ich einen Programmfehler, oder ist der Quarzoszillator so mies?

Es laufen übrigens keine anderen Interrupts, das heißt ein "auslassen" 
ist eigentlich nicht möglich.

Danke für Eure Unterstützung

Erich
Gast #4469908
Lesenswert?
• ▲
▼
das sind aber mit 1/64 und 249 Reload 0.996ms, ergo ist Deine Abweichung 
schon besser als rechnerisch bei perfektem Quarz. Da wären es 
-345,6ms/Tag. Die Abweichung Deines Quarzes liegt schon auf der 
günstigen Seite...
#4469915
Lesenswert?
• ▲
▼
@  Homer (Gast)

>das sind aber mit 1/64 und 249 Reload 0.996ms, ergo ist Deine Abweichung
>schon besser als rechnerisch bei perfektem Quarz. Da wären es
>-345,6ms/Tag. Die Abweichung Deines Quarzes liegt schon auf der
>günstigen Seite...

Nö, denn bei einem Reload-Wert von 249 beträgt der Teilerfaktor 250. 
RTFM.

800ppm Abweichung schafft normalerweise kein Quarz, da müsste man sich 
schon SEHR anstrengen.
Gast #4469923
Lesenswert?
• ▲
▼
Hallo an alle, und schonmal herzlichsten Dank für eure zahlreichen 
Antworten!

Den Schaltplan habe ich mir schon angesehen:
https://www.arduino.cc/en/uploads/Main/arduino-mega2560_R3-sch.pdf

Habe aber nur auf das Schaltzeichen geachtet, und dachte das wäre 
sowieso ein Quarz, laut Typenbezeichung, aber tatsächlich ein 
Keramikresonator!

Dann ist die Abweichung auch klar, herzlichen Dank!

Gibt es eigentlich noch ein anderes Erkennungsmerkmal, dass es ein 
Keramikresonator ist, anstatt eines Quarzes, außer der eindeutigen Type?

Antwort schreiben

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.

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.