Timer läuft falsch?

Gast #3184230
Hallo Forum.

Ich möchte gerne einen Atmega16 als Uhr betreiben. Dazu benötige ich 
natürlich einen exakten 0.5 Sekundentimer also rechnete ich so:

0.5 = 15625 * 256/8000000

Getaktet ist der Chip mit 8 MHZ

Nur mein Problem ist, dass nach knapp 24 Stunden die Uhr bis zu 7 
Minuten hinterherhinkt.

Wo könnte das Problem liegen?
Habe ich falsch gerechnet?
Falsche formel?
ect.
Gast
Interner Takt 8 MHZ 6CK 64MS

Und die Konfiguration:
1
ISR(TIMER1_COMPA_vect);
2

3

4
//main
5

6

7
TCCR1B = (1<<CS12|1<<WGM12);
8
OCR1A = 15625;
9
TIMSK = 1<<OCIE1A
10
sei();
Gast
Sonic Hedgehog schrieb:
> Getaktet ist der Chip mit 8 MHZ

Also wenn du eine Uhr aufbauen willst, brauchst du auf jeden fall einen 
externen Quarz Osc.. Dann ist die Frage, wie verwendest du den Takt 
weiter?

Zählst du über die Software Stunden Minuten etc.. Dann bedenke das Für 
die Abarbeitung des Programms eine gewisse Zeit gebraucht wird. 
(Zykluszeit) Diese muss natürlich mit berücksichtigt werden, wenn du so 
"weit" Zählen willst!
Gast
Ach ja,
Rundungsfehler kommen dann auch noch dazu. Deshalb solltest du ruhig in 
100ms schritten, oder sogar 10ms Schritten zählen. Damit erreicht man 
auch eine Höhere Genauigkeit.
Gast
Eine andere Möglichkeit wäre festzustellen, ob diese 7 Minuten konstant 
sind. Siehe hierzu auch: "Die genaue Sekunde".
0,5% ohne weitere Maßnahmen erscheinen mir relativ genau.
amateur schrieb:
> Eine andere Möglichkeit wäre festzustellen, ob diese 7 Minuten konstant
> sind. Siehe hierzu auch: "Die genaue Sekunde".

Dieser Ansatz macht Sinn, wenn schon eine recht stabile Taktquelle 
benutzt wird. Es nützt jetzt aber wenig, den internen RC-Oszillator 
jetzt zu kalibirieren und beim nächsten warmen Tag rennt er wieder 
davon.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 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.