Forum: Projekte & Code DCF77 (1_3) Programm zur Dekodierung der DCF77 Impulse


von Klaus D. (rodo38)


Angehängte Dateien:

Lesenswert?

DCF77 (1_3) Programm zur Dekodierung der DCF77 Impulse

Ursprung dieses Beitrags:

Beitrag "Ein VB6-Programm dekodiert das DCF77-Signal. Das kommt von einem Mikrocontroller/avrasm über COM1"

Beitrag vom 10.07.2013 20:55 mit kleinen Änderungen und
Berichtigungen von Fehlern

Dieses Programm dient zur Zusammenarbeit mit den Beiträgen:

DCF77 (2_3) Ferritantenne mit variabler Induktivität
DCF77 (3_3) Elektronik aus einer Funk-Armbanduhr

Es hat folgende Eigenschaften und Funktionen:

* DCF-Receiver über einfache Anpasselektroniken direkt am COM-Port.
* Abfrage, ob die COM-Ports 1 bis 32 vorhanden sind.
* Bei jedem vorhandenen COM-Port Prüfung, ob der DCF77-Receiver
  angeschlossen ist, wenn ja dann keine weitere Abfrage.
* Nach Erkennen des COM-Ports warten auf die Signalpause von 2 Sekunden.
* Erfassung der Impulse bis zur erneuten Erkennung der Signalpause.
* Während der Erfassung Datenerhebung für eine Statistik.
* Mittels der VB6 APIs "timeBeginPeriod", "timeEndPeriod" und/oder 
"Sleep"
  kann die Polling-Geschwindigkeit sehr weitgehend geändert werden. Das
  hat erhebliche Auswirkungen auf die statistischen Ergebnisse.
* Nach Erkennen der zweiten Signalpause läuft die Uhr mittels der API
  "timeGetTime" weiter.
* Um 23:58:00 Uhr erfolgt ein Neustart ohne die Abfrage der COM-Ports.
* Ab 00:00:00 Uhr des nächsten Tages läuft dann die Anzeige wieder mit
  den aktuellen Daten.
* Die PC-Zeit kann mit der DCF77-Zeit synchronisiert werden.
* Das Manual sowie weitere Dateien können über Menus geöffnet werden.
  Hierzu gehört auch eine doppelte Liste für die Einzelwerte zur
  Statistik, jeweils eine für die 100 [ms] und eine für die 200 [ms]
  Impulse, sortiert sowie nicht sortiert nach der Pulslänge.
* Wahlmöglichkeit, ob bei Fehlererkennung ein Neustart erfolgt.
  Anzeige der erkannten Fehler, falls der Neustart nicht aktiviert ist.
  Das erleichtert das Auffinden einer idealen Position und Ausrichtung
  der Ferritantenne.
* Die Schaltung für das DCF77-Modul von ELV kann mit Spannungen aus dem
  RS232 Anschluß betrieben werden. Wenn erforderlich: Checkboxen DTR
  und/oder RTS aktivieren oder deaktivieren. Die positive Spannung wird
  durch die rote LED, die negative durch die blaue LED angezeigt.

Durch einen Klick auf das Button "Backg. On" wird die Darstellung mit
dem Fenster für die Suche nach dem COM-Port sowie dem Fenster mit den
Statistik-Enzelwerten vor dem Hintergrung "Gradient" aufgerufen, durch
nochmaligen Klick darauf werden diese Fenster wieder ausgeblendet und
der normale Desktop angezeigt.

Das Programm wurde auf einem Monitor 1920 x 1200 erstellt. Ich vermute,
dass es bei höheren Auflösungen, aber auch bei 1920 x 1080 noch richtig
funktioniert (auf einem Fernsehgerät mit 1920 x 1080 geht es).

Sollte bei einem Doppelklick auf "DCF77.exe" diese nicht starten, bitte
"vbrun600.exe" installieren. Falls VB6 installiert ist, kann das
Programm auch in der Entwicklungsumgebung durch Doppelklick auf
"DCF77.vbp" aufgerufen werden. Start dann mittels F5.

In das Textfeld "Time Correction [s]" kann ein Wert eingetragen werden
welcher die Länge der Impulse für das Programm ändert. Optimal bei mir:
+0.015 bei Verwendung des DCF77 Moduls von ELV
-0.004 bei Verwendung der Elektronik aus der Funk-Armbanduhr
Diese Korrekturen sorgen dafür, dass die statistischen Mittelwerte der
Impulslängen bei ziemlich genau 100 bzw. 200 [ms] liegen.

Für Anregungen und Hinweise auf Fehler wäre ich sehr dankbar.

Grüße

Klaus

von Mike (Gast)


Lesenswert?

Ist das wieder eines dieser Beispiele für "Warum soll man es einfach 
machen, wenn es auch kompliziert geht?"

von Joachim B. (jar)


Lesenswert?

Mike schrieb:
> Ist das wieder eines dieser Beispiele für "Warum soll man es einfach
> machen, wenn es auch kompliziert geht?"

da hat sich einer Mühe gegeben und präsentiert sein Ergebnis dem Forum, 
das muss man loben.

Ich habe sowas vor 15 Jahren am PC und Joystikport aus Interesse auch 
mal gemacht, aber heute nutze ich gerne von echten Profis, PeDa z.B. am 
Atmel, besser kann ich es selber nicht, ich verstehe zwar auf den ersten 
Blick nur die Hälfte und müsste mich mächtig reinknien um alles zu 
ergründen, aber wozu?

von Klaus D. (rodo38)


Angehängte Dateien:

Lesenswert?

Hier kommt noch die ZIP Datei mit dem Programm.

Grüße

Klaus

von Klaus D. (rodo38)


Lesenswert?

Hallo Joachim,

bitte hilf mir zu verstehen, was PeDa ist. Bei meiner Suche danach hier 
bei mikrocontroller.net werden zwar sehr viele Einzelaspekte dazu 
gezeigt, aber mir fehlt der Zusammenhang.

Danke im für Deine Mühe.

Grüße

Klaus

von Joachim B. (jar)


Lesenswert?

Klaus D. schrieb:
> Hallo Joachim,
>
> bitte hilf mir zu verstehen, was PeDa ist.

Peter Dannegger, auch toll Tasterentprellung u.A. ich lese in der IRQ 
nicht nur die Taster sondern auch die DCF77 und leite sie an die DCF 
routine weiter:

Beitrag "DCF77 Uhr in C mit ATtiny26"

Es gibt im orig, Code wohl noch einen Bug der später behoben wurde, also 
muss man viel lesen um sich da reinzufinden, dann kommt man 
unwillkürlich auch auf den korrigierten Quellcode.

Sich einlesen ist auch sehr hilfreich um einiges besser zu verstehen, 
inclusive DCF77 Wiki

von Klaus D. (rodo38)


Lesenswert?

Hallo Joachim,

vielen Dank dass Du mir nicht verbal den Hintern versohlst. Da hätte ich 
auch drauf kommen können und müssen weil ich seine Beiträge auch gern 
lese, soweit es um Assembler geht.
Habe mir soeben eine Watschn erteilt.

Grüße

Klaus

von Joachim B. (jar)


Lesenswert?

Klaus D. schrieb:
> vielen Dank dass Du mir nicht verbal den Hintern versohlst.

nicht dafür, ich stehe manchmal selber auf dem Schlauch bei AKüFi

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.