Sekundentakt aus 4MHz Quarz

OP #1693560
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:
1
void init_timer(void)
2
{
3
  TCCR1A = 0;
4
  TCCR1B = 0;                  
5
  TCCR1B |= (1<<CS10) + (1<<CS11)+ (1<<WGM12);  // Prescaler 64, IC an,Noice Cancel an
6
                      
7
  TIMSK |= (1<<OCIE1A); // Compare Interrupt, IC interrupt
8
  OCR1A = 62500-1;   // Compare grenzwert setzten
9
  //sei();    // Interrupts aktivieren erst nach stellen der uhr
10
}
11

12
ISR(TIMER1_COMPA_vect)
13
{
14
  if(ucSecond_state == 0)
15
  {
16
    ucSecond_state = 1;
17
    SEKUNDE_ON;
18
  }
19
  else
20
  {
21
    ucSecond_state = 0;
22
    SEKUNDE_OFF;
23
  }
24
  update_time(); 
25
}


Ist dieser Code genau genug?

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

Grüsse
#1693565
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.
Gast #1693619
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren