'--------------------------------------------------------- ' (c) 1995-2007 MCS Electronics ' DCF 77 demo to demonstrate the DCF77 library from Josef Vögel '--------------------------------------------------------- $regfile = "m8def.dat" $crystal = 4000000 $hwstack = 128 $swstack = 128 $framesize = 128 ' 'dim the used variables Dim Temp As Long 'Dim Mday As Byte 'Dim Bweekday As Byte , Strweekday As String * 10 Dim Bsec As Byte , Bmin As Byte , Bhour As Byte 'Dim Bday As Byte , Bmonth As Byte , Byear As Byte 'Dim Lsecofday As Long 'Dim Wsysday As Word Dim Lsyssec As Long 'Dim Wdayofyear As Word Dim Hour10 As Byte Dim Hour1 As Byte Dim Min10 As Byte Dim Min1 As Byte Dim Korr(16) As Byte Dim I As Byte Config Portb = Output Config Portb.4 = Input Config Portc = Output Config Portd = Output Config Dcf77 = Pinb.4 , Timer = 1 , Debug = 1 , Check = 1 , Gosub = Sectic , Update = 0 Dim Sec_old As Byte , Dcfsec_old As Byte Enable Interrupts Config Date = Dmy , Separator = . Declare Function Dcf_timezone() As Byte 'Korrekturtabelle Zahlenanzeige Korr(1) = 3 Korr(2) = 4 Korr(3) = 7 ' Korr(4) = 8 Korr(5) = 6 Korr(6) = 0 Korr(7) = 2 Korr(8) = 9 Korr(9) = 5 Korr(10) = 1 Korr(11) = 10 Korr(12) = 10 Korr(13) = 10 Korr(14) = 10 Korr(15) = 10 Korr(16) = 10 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 Lsyssec = Syssec() Bsec = Time(lsyssec) Min1 = Bmin / 10 Min10 = Min1 * 10 Min1 = Bmin - Min10 Min10 = Bmin / 10 Hour1 = Bhour / 10 Hour10 = Hour1 * 10 Hour1 = Bhour - Hour10 Hour10 = Bhour / 10 Hour10 = Korr(hour10 + 1) Hour1 = Korr(hour1 + 1) Min10 = Korr(min10 + 1) Min1 = Korr(min1 + 1) 'set Stunden Einer und Minuten 10er Temp = 16 * Hour1 Temp = Temp + Min10 Portd = Temp 'set Port Minuten Einer Temp = Portc Temp = Temp And $f0 Temp = Temp + Min1 Portc = Temp 'set Port Stunden 10er Temp = Portb And $f0 Temp = Temp + Hour10 Portb = Temp If Dcf_sec > 45 Then Reset Dcf_status.7 End If Loop 'optional, is called every second by the library Sectic: nop Return End Korr: Data $03 , $04 , $07 , $08 , $06 , $00 , $02 , $09 , $05 , $01 , $0a , $0a , $0a , $0a , $0a , $0a