Hallo zusammen, ich habe im Anhang einen DCF_77 Code angefügt. Funktionen: - Synchronisation in einstellbaren Zeitabständen - automatischer Abgleich der berechneten Uhrzeit nach jeder Synchronisierung (Anpassung des Timer-Compare-Registers) - Automatische Datumsberechnung incl. Schaltjahr - Ausgabe auf Anzeige (4 Zeilen, 20 Zeichen) Bei mir funktioniert alles einwandfrei. Ich hoffe auf Verbesserungsmöglichkeiten und konstruktive Kritik. Danke & Grüße Thomas PS.: Verwendete Hardware: -Anzeige: EA DIP204-4 -ATMega16 @ 8Mhz -Pollin DCF-Modul
Zur Vollständigkeit wäre ein Schaltplan nett und als Kür ein Hauptprogramm zum schnellen Testen ...
Hallo, danke für die Antwort. Ich habe im Anhang das Hauptprogramm hinzugefügt. Einen Schaltplan habe ich auf die Schnelle keinen zur Hand. Ich liste im Folgenden aber kurz ein paar Pinbelegungen auf: LCD (EA DIP204-4) - Das LCD wird im 4-Bit-Modus mit folgender Pinbelegung am uC betrieben: D4 --> PC0 D5 --> PC1 D6 --> PC2 D7 --> PC3 RS --> PC4 RW --> PC5 EN --> PC6 DCF-Modul (Pollin): VDD --> Betriebsspannung GND --> Masse DATA --> PD2 (Int0) PON --> Masse (GND -> Empfangsteil ist eingeschaltet) Hoffe ich konnte dir hiermit schonmal ein bisschen helfen. Grüße
Das was du da gebaut hast, habe ich auch mal gebaut -- kannst du getrost komplett neuschreiben... DCF77 ist ein derart schnarchlangsames Protokoll, dafür nimmt man keinen Interrupt, sondern pollt das einfach alle 10ms. Dadurch wird die Sache erheblich störunempfindlicher. cli und sei in einer Interruptroutine sind übrigens auch überflüssig :-) Ansonsten macht es noch Sinn, zuerst cli zu machen, dann die Register zu initialisieren und erst dann wieder mit sei freizugeben.
Das Pollin Modul möchte lt. Datenblatt an PON ein Flankenwechsel zum Start haben. Wie bekommst Du das hin, wenn PON direkt auf GND gelegt ist ?
Hallo, danke für euere Antworten. @ Sven Das mit dem cli & sei in der Interruptschleife habe ich hier vor kurzem auch schon mal gelesen, ich ändere das noch ab. Danke für den Hinweis. Das mit dem Pollen werd ich auch nochmal durchdenken. @ Pete K Das ist ein berechtigter Einwand. Die Klausel habe ich im Datenblatt überlesen. :o) Allerdings funktioniert es auch ohne aktiven Flankenwechsel. Ich werde das jedoch noch anpassen. Ich werde mein Programm abändern bzw. anpassen und das Ergebnis hier nochmal einstellen. Weitere Anregungen sind jederzeit willkommen! :) Grüße
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.