Könnte man auch mit Folgendem etwas anfangen. Denn das habe ich momentan in Gebrauch um das DCF-Signal besser kennenzulernen.

Code:
  Cls                                                                           'LCD-Display löschen und Meldung ausgeben.
  Locate 3, 1                                                                   'Textposition auf LCD-Display festlegen
  Lcd "Minutenl{245}cke suchen"                                                 'und Text Minutenlücke suchen ausgeben

  signalgap = 0                                                                 'Signalbreite löschen
  While signalgap < 1700                                                        'Solange empfangen bis Minutenlücke gefun-
                                                                                'den ist.
    ' Ende der Sekundenmarke suchen, DCF-Signal wird "0"
    While dcf77inp = 1                                                          'Ende der Sekundenmarke suchen, DCF-Signal
      Waitms 1                                                                  'wird 0. Im ms-Takt abfragen
    Wend

    ' Breite der Lücke messen (Zeit während der das DCF-Signal "0" bleibt)
    signalgap = 0                                                               'Signalbreite löschen
    While dcf77inp = 0                                                          'Neue Signalbreite messen in dem der Ein-
      Incr signalgap                                                            'gang im 1ms-Abstand abgefragt wird.
      Waitms 1                                                                  'Solange Signal Low ist, Zähler erhöhen
    Wend                                                                        'Solange wiederholen bis Signal 1 ist.

    Locate 3, 1                                                                 'Textposition auf LCD-Display festlegen
    Lcd "                    "                                                  'und alten Text löschen.
    Locate 3, 1                                                                 'Textposition wieder auf Anfang 3. Zeile
    Lcd "L{245}cke: "; signalgap; "   "                                         'und Text + Signallänge ausgeben
  Wend

' *****************************************************************
' * Minutenlücke gefunden (Signalgap >= 1700ms)                   *
' *****************************************************************

  Cls                                                                           'LCD-Display löschen.
  Locate 3, 1                                                                   'Textposition auf LCD-Display festlegen.
  Lcd "Bits empfangen..."                                                       'Und Text ausgeben.

  Reset signalerror                                                             'Fehlerflag für Signalempfang löschen
  bitcount = 1                                                                  'Bitzähler auf 1 setzen

  While BitCount <= 59
    If BitCount >= 59 Then BitCount = 0     'Test um die Zeiten auf dem Display zu sehen
'  While signalerror = 0 AND bitcount <= 59

    ' Breite der Sekundenmarke messen: <70ms = Störpuls, 100ms = "0", 200ms = "1"
    signalwidth = 0
    While dcf77inp = 1
      Incr signalwidth
      Waitms 1
    Wend

    ' Die erste Sekundenmarke (Minutenanfang) wird immer wesentlich kürzer gemessen.
    ' Grund unbekannt. Daher wird hier die erste Marke künstlich um 20ms verlängert.

    If bitcount = 1 Then signalwidth = signalwidth + 30                         '1. Marke verlängern

    Locate 2, 1                                                                 'Alten Text auf dem LCD-Display
    'Lcd "                    "                                                  'löschen.
    'Lowerline
    Select Case signalwidth
      Case Is < 65:   Set signalerror                                           'Sekundenmarke ist zu schmal
                      Lcd "error"; signalwidth
      Case 65 TO 110: dcfbit(bitcount) = 0                                      'Signalbreite ergibt "0"
                      Lcd "(0) "; signalwidth; "  "
      Case Is > 110:  dcfbit(bitcount) = 1                                      'Signalbreite ergibt "1"
                      Lcd "(1) "; signalwidth; "  "
    End Select

    Incr bitcount                                                               'read next bit

    ' Lücke überspringen
    signalgap = 0
    Locate 2, 12
    While dcf77inp = 0
      Incr signalgap
      Waitms 1
    Wend

    Lcd SignalGap; "  "

    Locate 3, 1
    I = SignalWidth + SignalGap
    LCD I; "  "

    If signalgap < 700 Then Set signalerror                                     'Lücke war zu kurz

  Wend