www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sekundentakt aus 4MHz Quarz


Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe vor etwa einem Halben jahr mal eine Uhr gebaut...

Damals hatte ich vor einen DS1302 als Sekundengeber zu verwenden.
Da dieses vorhaben jedoch unter mangelnder I2C Kommunikation scheiterte, 
habe ich mir heute ein halbes jahr später etwas anderes überlegt.

Es muss doch möglich sein, von einem Standard 4MHz Quarz einen genauen 
1Sekunden Interrupt zu erzeugen oder?

Mein Bisheriger Code:
void init_timer(void)
{
  TCCR1A = 0;
  TCCR1B = 0;                  
  TCCR1B |= (1<<CS10) + (1<<CS11)+ (1<<WGM12);  // Prescaler 64, IC an,Noice Cancel an
                      
  TIMSK |= (1<<OCIE1A); // Compare Interrupt, IC interrupt
  OCR1A = 62500-1;   // Compare grenzwert setzten
  //sei();    // Interrupts aktivieren erst nach stellen der uhr
}

ISR(TIMER1_COMPA_vect)
{
  if(ucSecond_state == 0)
  {
    ucSecond_state = 1;
    SEKUNDE_ON;
  }
  else
  {
    ucSecond_state = 0;
    SEKUNDE_OFF;
  }
  update_time(); 
}


Ist dieser Code genau genug?

Ich habe nach 5 Stunden bereits verzögerungen vo ca 200ms Festgestellt.
Also das glaube ich zumindest... :)

Grüsse

Autor: Edi R. (edi_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind 11 ppm. Ist doch nicht schlecht, oder was erwartest Du von 
einem Quarz?

Die (unjustierte) Abweichung vom Nennwert ist die eine Sache. Viel 
wichtiger ist die Stabilität. Wenn die Frequenz konstant ist, d. h. 
wenn die Abweichung nach 5 Stunden immer 200 ms ist, dann kannst Du in 
der Software Korrekturen vornehmen.

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Edi R. schrieb:
> Das sind 11 ppm. Ist doch nicht schlecht, oder was erwartest Du von
> einem Quarz?

hmmm

hast du eigentlich recht... hab ich mir so noch gar nicht überlegt :)

Ja das mit der Stabilität ist einleuchtend... also Codemässig sieht 
alles gut aus?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Claudio Hediger (hedie)

>hast du eigentlich recht... hab ich mir so noch gar nicht überlegt :)

Wäre ja auch vollkommen unzeitgemäß, erst denken und dann schreiben . . 
.

>Ja das mit der Stabilität ist einleuchtend... also Codemässig sieht
>alles gut aus?

Dein Code sagt nicht wirklich viel aus. Zum Thema allgemein.

AVR - Die genaue Sekunde / RTC

MfG
Falk

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Claudio Hediger schrieb:
> Ich habe nach 5 Stunden bereits verzögerungen vo ca 200ms Festgestellt.

Wie hast du das gemessen?
Mit einer normalen DCF-Uhr vergleichen reicht nicht! Diese werden nur 
einmal nachts synchronisiert und können in der Zwischenzeit leicht diese 
Abweichung produzieren, da sie dann mit einem mehr oder weniger gut 
kalibrierten Quarz frei laufen.

Mir ist das aufgefallen, als ich mal die von Falk zitierte 'Genaue 
Sekunde' ausprobiert hatte und die festgestellten Abweichungen zu einem 
handelsüblichen DCF-Empfänger unklar waren: tagsüber auf Minimum 
korrigiert, dann ein Test über Nacht brachte deutliche Abweichungen.

Erst als ich meine uralte Selbstbau-DCF-Uhr zum Vergleich heranzog, war 
klar, woran das lag. Diese empfängt nämlich das Telegramm von Minute zu 
Minute und zeigt es direkt an. Die DCF-Pulse takten direkt die 
angezeigten Sekunden.
Mit den Vorschlägen von Peter Dannegger konnte dann eine sehr gute 
Kalibrierung erreicht werden.

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.