Hallo Forum,
jetzt bastle ich schon den ganzen Tag an der DCF77 Funktion.
Vielleicht hat jemand von euch nen Tip für mich.
Mein Problem ist:
Die Uhrzeit und Datum wird anscheinend empfangen und auch decodiert
aber die Softclock wird nicht syncronisiert mit der empfangenen Uhrzeit
1 | $regfile = "M48def.dat"
|
2 | $crystal = 8000000
|
3 |
|
4 | $hwstack = 128
|
5 | $swstack = 128
|
6 | $framesize = 128
|
7 |
|
8 |
|
9 | $baud = 19200
|
10 |
|
11 | 'Set LCD
|
12 | Config Lcd = 20 * 4
|
13 | Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portd.7 , Rs = Portd.5
|
14 | Config Pind.6 = Output
|
15 | Portd.6 = 0 'set R/W
|
16 | Initlcd
|
17 | Cls
|
18 | Cursor Off Noblink
|
19 |
|
20 |
|
21 | 'Config Dcf77 = Pind.2 , Debug = 1 , Inverted = 0 , Check = 2 , Update = 0 , Updatetime = 30 , Switchpower = 0 , Secondticks = 50 , Timer1sec = 1 , Powerlevel = 1 , Timer = 1
|
22 | Config Dcf77 = Pind.2 , Timer = 1 , Timer1sec = 1 , Debug = 0 , Inverted = 1 , Update = 0
|
23 |
|
24 | Enable Interrupts
|
25 | Config Date = Dmy , Separator = .
|
26 |
|
27 |
|
28 | Dim I As Integer
|
29 | Dim Sec_old As Byte , Dcfsec_old As Byte
|
30 |
|
31 | Sec_old = 99 : Dcfsec_old = 99 ': DCF_Debug_Timer = 0
|
32 |
|
33 | ' Testroutine für die DCF77 Clock
|
34 | Locate 1 , 1
|
35 | Lcd "Test DCF77 Version 1.00"
|
36 | Do
|
37 | For I = 1 To 78
|
38 | Waitms 10
|
39 | If Sec_old <> _sec Then
|
40 | Exit For
|
41 | End If
|
42 | If Dcfsec_old <> Dcf_sec Then
|
43 | Exit For
|
44 | End If
|
45 | Next
|
46 | Waitms 220
|
47 | Sec_old = _sec
|
48 | Dcfsec_old = Dcf_sec
|
49 | Cls
|
50 | Locate 1 , 1
|
51 | Lcd Time$ ; " " ; Date$ ; " "
|
52 | Locate 2 , 1
|
53 | Lcd Time(dcf_sec) ; " "
|
54 | Locate 2 , 10
|
55 | Lcd Date(dcf_day) ; " " ;
|
56 | Locate 4 , 1
|
57 | Lcd Bin(dcf_status) ; " "
|
58 | 'Locate 3 , 1
|
59 | 'Lcd Bin(dcf_bits) ; " "
|
60 | 'Locate 3 , 1
|
61 | 'Lcd Bdcf_impuls ; " " ; Bdcf_pause
|
62 | Loop
|
63 | End
|
der code entspricht im wesentlichen dem Beispielcode aus der Hilfe.
In der ersten Zeile wird die Zeit mehr oder weniger genau
hochgezählt(SoftClock)
in Zeile 2 erscheint nach einer Minute die über DCF empfangene Zeit und
Datum(die stimmt auch)
aber die Softclock wird erst nach 1-2 Stunden syncronisiert.
Woran kann das noch liegen?
Danke schonmal.