Forum: Projekte & Code DCF77 von U. Raid


von Harald B. (grieko)


Lesenswert?

Hallo,
ich will den C-Code von Ulrich Radig auf meinen Mega16 mit 8 MHz 
umstricken. Da tauchen bei mir folgende Fragen auf:

Was bedeutet
1
//############################################################################
2
//Overflow Interrupt wird ausgelöst bei 59Sekunde oder fehlenden DCF77 Signal 
3
SIGNAL (SIG_OVERFLOW1)
4
//############################################################################
1. Wieso wird der Overflow ausgelöst bei 59Sekunde oder fehlendem DCF77 
Signal ? Ich denke das ist der Timer1, der löst den Overflow aus wenn 
der Zähler überläuft...

2. Wie oft wird der Timerinterrupt denn ausglöst ? Wenn ich richtig 
zurückrechne, dann komme ich auf 1 Sekunde. Ist wohl doch eher 1 ms, 
oder ?

von (prx) A. K. (prx)


Lesenswert?

Möglicherweise hilft es, wenn nicht jeder, der sich des Themas annehemen 
will, nicht erst selber nach dem Code suchen muss.

von Thomas D. (t0mmy)


Lesenswert?

DCF77 übermittelt jede Sekunde einen kürzer oder längeren Impuls (0 oder 
1). Nur in der 59. Sekunde fehlt dieser, damit man weiß, dass jetzt eine 
neue Minute startet.
Der Overflow-Interrupt wird auslösen, wenn ca. 1 Sekunde lang kein 
Impuls kommt. Das passiert dann in der 59. Sekunde oder eben bei keinem 
Signal.

Ich habe mir den Code aber nicht angeschaut, ist nur eine Vermutung...

: Bearbeitet durch User
von Harald B. (grieko)


Angehängte Dateien:

Lesenswert?

Sorry, da hast Du natürlich recht.
Hier die Sourcen der Version 1.6;der Code den ich meine ist am Anfang 
der Datei uhr.c zu finden.
Die Initialisierung des Timers findet in der Funktion StartDcf am Ende 
der gleichen Datei statt.

: Bearbeitet durch User
von Harald B. (grieko)


Lesenswert?

@t0mmy:

Ich denke damit hast Du recht. Das DCF-Signal löst einen externen 
Interrupt aus (INT0). Und in dieser Routine wird der Timer neu geladen. 
Somit sollte er auch nur unter den Bedingungen auslösen die Du 
beschrieben hast.
Danke, ich habs einfach nicht kapiert.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.