Forum: Mikrocontroller und Digitale Elektronik DCF77, Frage ob Modul Signal liefert (AT8515)


von Snecx (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

ich versuche das DCF77 zu decodieren. Um ueberhaupt zu sehen ob ich ein 
brauchbare Siganl bekomme habe ich aus einem Beispielprogramm folgenden 
Code kopiert und angepasst.
Ich bekomme 1 mal in der Sekunde ein Signal und der Interupt wird 
ausgeloesst.
In der 3 ten Zeile auf dem LCD lasse ich mir die Zeitdauer anzeigen.
Allerdings ist diese Zeitdauer fast immer gleich schwankt so zwischen 
3910 und 3916.
Also lese ich daraus das der Impuls immer gleich lang ist. Wenn ich aber 
ein Signal empfangen wuerde dann muesste ich doch unterschiedlich lange 
impulse sehen. Liege ich da richtig oder verstehe ich den copierten code 
nicht richtig?
Danke.

von Slowhand himself (Gast)


Lesenswert?

>Um ueberhaupt zu sehen ob ich ein
brauchbare Siganl bekomme habe ich aus einem Beispielprogramm folgenden
Code kopiert und angepasst.

Schau doch mal mit dem Oscar nach, wie lang die Pulse sind. Müssen 100 
oder 200 ms lang sein.

Es langt zur Not auch eine LED. Wenn man genau hinschaut, erkennt man 
die Unterschiede.

Ciao

Eric

von Ralli (Gast)


Lesenswert?

Das DCF-Signal wird zu Beginn jeder (außer der 59.) Sekunde abgesenkt 
und nach 0,1 oder 0,2 Sekunden (Kodierung für logisch 0 oder logisch 1) 
wieder auf den Normalwert angehoben.

Mit deinem Interrupt erfasst du den SIGNALWECHSEL und zwar (da du einen 
fast konstanten Abstand erfasst) genau den RICHTIGEN zum Sekundenbeginn: 
Anderenfalls würde der Messwert um ungefähr genau +/- 10% schwanken.

Was noch fehlt, ist die Erfassung des SIGNALPEGELS 0,15 Sekunden nach 
dem Signalwechsel. Dann kann man  den logischen Wert des Sekundenbits 
feststellen: Liegt 0,15 Sekunden nach dem Signalwechsel wieder der 
Normalwert an, war es eine logische Null, ansonsten eine logische Eins.

Als alter Assembler-Freak kann ich zu deinem BASIC-Code nicht viel 
sagen, aber du scheinst ja auf dem richtigen Weg zu sein.

Viel Erfolg
Ralli

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bitte keinen Interruptpin zur Auswertung des schnarchlangsamen 
DCF-Signals verwenden. Ein per Timer-Interrupt gepollter Pin (alle 10ms) 
liefert weitaus störungsärmere und zuverlässigere Werte und schont die 
Ressourcen.

von Sonic (Gast)


Lesenswert?

@ Travel Rec.. das hatten wir doch schonmal ?! ;-)

Aber wie Ralli schon schrieb: du misst die Periodendauer, nicht die 
Impulslänge.
Wenn's mit dem Interrupt sein muss: je nach Pegel (high/low) deiner 
Impulse musst du die Zeit zwischen den unterschiedlichen Flaken messen 
und direkt nach Auslösen des Interrupts die Flankenerkennung umschalten 
(high nach low und umgekehrt).
Ansonsten so wie  Travel Rec. geschrieben hat.
Es geht auch mit dem ICP (Input-Capture-Pin).

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.