PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DCF 77 liefert seltsame Werte



Goldenflash
06.08.2011, 11:34
Hallo,


ich hab mir gestern das DCF 77 Modul von Conrad gekauft und heute mal an meinen AVR gehängt.
Anschluss nach Wolfgang Back http://www.wolfgang-back.com/PDF/DCF77.pdf an PD0 von meinem ATMega8.


Als Code hab ich einfach den Bascom Beispiel Code genommen und ihn angepasst:


$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 128
$swstack = 128
$framesize = 128


$baud = 9600
Config Dcf77 = Pind.0 , Inverted = 0 , Timer = 1 , Timer1sec = 1 , Debug = 1

Enable Interrupts

Config Date = Dmy , Separator = .





Dim I As Integer

Dim Sec_old As Byte , Dcfsec_old As Byte

Sec_old = 99 : Dcfsec_old = 99


Print "Test DCF77 Version 1.00"

Do

For I = 1 To 78
Waitms 10
If Sec_old <> _sec Then
Exit For
End If
If Dcfsec_old <> Dcf_sec Then
Exit For
End If
Next
Waitms 220
Sec_old = _sec
Dcfsec_old = Dcf_sec

Print "Time:" ;
Print Time$
Print "Time(dcf_sec):" ;
Print Time(dcf_sec)

Loop
End


Leider kann ich diese Uhrzeit


Time:00:03:03
Time(dcf_sec):45:85:B1

aber nicht lesen.

Es kommt ein Signal an PD0 an, da bin ich sicher, das hab ich mit ner LED an PD6 und diesem Programm

$regfile = "m8def.dat"
$crystal = 8000000
Config Pind.0 = Input
Portd.0 = 1
Config Pind.6 = Output

Dim Check As Integer
Do
If Pind.0 = 0 Then
Portd.6 = 0
Else
Portd.6 = 1
End If
Loop
getestet.


Also viel kanns ja eigentlich kaum sein was falsch läuft, weil es kommt ja was an. Nur mach das was ankommt keinen Sinn.^^

Danke schonmal

Goldenflash
07.08.2011, 23:18
Update:

Eingang jetzt an PD2 wegen Int0 und auf externen quarz mit 4Mhz gestellt:

Gleiches Ergebnis:


Time(dcf_sec): 11:00:D4
Time(dcf_sec): 11:00:D5
Time(dcf_sec): 11:00:D7
Time(dcf_sec): 11:00:C9
Time(dcf_sec): 11:00:D1
Time(dcf_sec): 11:00:D3
Time(dcf_sec): 11:00:C1
Time(dcf_sec): 11:00:C5
Time(dcf_sec): 11:00:C9
Time(dcf_sec): 11:00:B3
Time(dcf_sec): 11:00:B7
Time(dcf_sec): 11:00:B9
sec): 11:00:A6
Time(dcf_sec): 11:00:A8
Time(dcf_sec): 11:00:B0
Time(dcf_sec): 11:00:B1
Time(dcf_sec): 11:00:A0
Time(dcf_sec): 11:00:A1
Time(dcf_sec): 11:00:A4
Time(dcf_Time(dcf_sec): 11:00:@1
Time(dcf_sec): 11:00:@3
Time(dcf_sec): 11:00:@7
Time(dcf_sec): 11:00:@9
Time(dcf_sec): 11:00:?0
Time(dcf_sec): 11:00:?4
Time(dcf_sec): 11:00:@0
Time(dcf_sec): 11:00:>3


Irgendwo gelesen dass es wohl mit schlechtem empfang zutun hat... hab den Aufbau mal 2m nach rechts bewegt, keine Verbesserung.

Vorschläge? :confused:

Danke schonmal

PICture
07.08.2011, 23:32
Hallo!

Um den Emfang von DCF hardwaremässig zu überprüfen sollte eine LED mit Vorwiderstand und Transistor für Stromverstärkung ausreichen. Sie sollte eben in Sekundentakt 59 mal pro Minute kurz blinken bzw. erlischen. ;)

Goldenflash
08.08.2011, 09:39
Hallo!

Um den Emfang von DCF hardwaremässig zu überprüfen sollte eine LED mit Vorwiderstand und Transistor für Stromverstärkung ausreichen. Sie sollte eben in Sekundentakt 59 mal pro Minute kurz blinken bzw. erlischen. ;)

Die LED blinkt! Ob sie im Sekundentakt blinkt kann ich nicht zu 100% sagen aber vom Gefühl her schon.
Hab das ja wie in meinem ersten Post beschrieben über den Eingang überprüft, aber auch mit 'ner LED am DCF komm ich zum gleichen Ergebnis.

PICture
08.08.2011, 09:44
Hallo!

Dann kannst du zumindest sicher sein, das das richtige empfangen wird. Als PICASMan kann ich dir bei AVR Software leider nicht weiterhelfen. :(

Ich kann mir nur noch erinnern, dass von ca. 10 Jahren bei einwandfreiem Empfang mit dem Z-80 programmierter DCF Uhr ich bis zu drei Minuten auf die erste richtige Zeitanzeige warten musste. ;)