Servus ich bin gerade drann einen Funkwecker mit einem DCF77 zu bauen.
Die Hardware steht soweit. Es fehlt somit nur die Software. Jedoch weiß ich nicht so recht wie das ganze nun weiter geht.

Ich habe bereits dies erstellt:
Code:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40



Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 ,
Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcdbus = 4
Cursor Off
Config Pinb.1 = Output
Config Pinb.4 = Output
Config Pinb.5 = Output

Config Pinb.3 = Input
Config Pind.4 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.3 = Input

Portd = &B00011111

Enable Interrupts
Config Clock = Soft
Declare Sub Stundew
Declare Sub Minutew
Declare Sub Onoff
Declare Sub Licht

Dim Stellenstunde As Byte
Dim Stellenminute As Byte
Dim Anaus As Byte


Cls

Time$ = "00:00:00"
Date$ = "01:01:00"

Do
   Locate 1 , 1
   Lcd Time$ ; "  " ;
   Locate 1 , 12
   If Stellenstunde < 10 Then Lcd "0"
   Lcd Stellenstunde ; ":"
         If Stellenminute < 10 Then Lcd "0"
         Lcd Stellenminute
   Locate 2 , 1
   Lcd Date$ ; "  " ;

      Debounce Pind.2 , 0 , Stundew , Sub                   'Wecker
Stellen
      Debounce Pind.3 , 0 , Minutew , Sub


      Debounce Pind.1 , 0 , Onoff , Sub
          If Anaus = 0 Then                                 'Wecker
an/aus
            Locate 2 , 11
            Lcd "   aus"
          End If

         If Anaus = 1 Then
            Locate 2 , 11
            Lcd "    an"
         End If


   Debounce Pind.4 , 0 , Licht , Sub

Loop


'Stunde                                                    'Hier wird
die Stunde der Uhr hochgezählt
Stunde:
   Incr _hour
   If _hour > 23 Then
      _hour = 00
   End If
Return



'Minute                                                     'Hier wird
die Minute der Uhr hochgezählt
Minute:
   Incr _min
   If _min > 59 Then
      _min = 00
   End If

Return



'MinuteW                                                    'Hier wird
die Minute des Weckers hochgezählt
Minutew:
Incr Stellenminute
   If Stellenminute > 59 Then
   Stellenminute = 0
   End If
Return



'Stundew                                                    'Hier wird
die Stunde des Weckers hochgezählt
Stundew:
Incr Stellenstunde
   If Stellenstunde > 23 Then
   Stellenstunde = 0
   End If
Return



'onoff                                                      'Hier wird
der Wecker ein- und ausgeschaltet
Onoff:
Incr Anaus
   If Anaus = 2 Then Anaus = 0
Return




'Licht                                                      'Hier wird
das Licht für 4 Sekunden eingeschaltet
Licht:

   Portb.5 = 1
   Wait 4
   Portb.5 = 0
Return

jedoch sind hier schon Sachen die ich nicht hinbekomme. Und zwar wird mir das Datum nicht richtig angezeigt die Doppelpunkte sind nicht richtig.

Und ich habe eigentlich vor das Licht von 8-20Uhr einzuschalten und in der Nacht soll es mit einem Tastendruck 4 Sekunden eingeschaltet werden können.

Mein Ansatz war:
If _hour <20 and _hour >8 or pind.4 = 1 then
portb.5 = 0
else
portb.5 = 1
end if


Jedoch tut sich so nix.

Kann mir jemand hierbei helfen und mir vielleicht auch erklären wie ich hier nun das DCF77 Signal einarbeite?