DCF77, Frage ob Modul Signal liefert (AT8515)

Gast #490697
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.
Angehängte Dateien:
Gast #490701
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
Gast #490703
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
Gast #491360
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).

Antwort schreiben

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.

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.