Config Watchdog = 1024
Start Watchdog

$crystal = 1000000
$baud = 300
$regfile = "m8535.dat"

Config Serialin = Buffered , Size = 15
Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 2 , Databits = 7
Config Portb = Output                                       'Ausgang: Low Stundenzehner ; High Stundeneiner
Config Portc = Output                                       'Ausgang: Low Minutenzehner ; High Minuteneiner
Config Pind.2 = Output                                      'Sekundentakt
Config Pind.3 = Output                                      'Zwischen 22Uhr und 6Uhr auf High-Pegel


Dim Name As String * 1

Dim Portbbyte As Byte
Dim Portcbyte As Byte


Dim Zaehler As Byte
Dim Errors As Byte

Dim Sekundentakt As Bit
Dim Dunkel As Bit

Dim Portbtemp As Byte
Dim Portctemp As Byte

Dim Stundenzehner As Byte
Dim Stundeneiner As Byte
Dim Minutenzehner As Byte
Dim Minuteneiner As Byte

Enable Interrupts
Zaehler = 0
Portbbyte = 0
Portcbyte = 0

Do

Reset Watchdog

   Name = Inkey()                                           'UART Eingang

   If Err = 0 Then                                          'wenn was empfangen wurde dann...

      If Errors > 250 Then                                  'Zählt die Fehler und die
         Errors = 0                                         '<CR>'s der Übertragung
      End If

      Zaehler = Zaehler + 1                                 'Zählt das wievielte Bit
                                                            'übertragen wurde.
                                                            'Zur Zuordnung
      If Name = "{013}" Then                                'Bei <CR> zurückstellen vom Zähler
      Zaehler = 0
      End If

      Select Case Zaehler                                   'Überträgt die Variablen
         Case 1 : Stundenzehner = Hexval(name)              'die angezeigt werden
         Case 2 : Stundeneiner = Hexval(name)               'sollen in einzelne
         Case 3 : Minutenzehner = Hexval(name)              'Datenbits
         Case 4 : Minuteneiner = Hexval(name)               'Rest sind leer
         Case Else : Errors = Errors + 1
      End Select

      Print ""



 
Portbtemp = Stundenzehner
Portctemp = Minutenzehner
Shift Portctemp , Left , 4
Portcbyte = Portctemp + Minuteneiner
Shift Portbtemp , Left , 4
Portbbyte = Portbtemp + Stundeneiner

      Portb = Portbbyte
      Portc = Portcbyte
      Portd.2 = Sekundentakt
      Portd.3 = Dunkel

Select Case Portbbyte
   Case 6 To 33 : Dunkel = 1
   Case Else : Dunkel = 0
   End Select

   End If

   If Zaehler = 1 Then
      If Sekundentakt = 0 Then
      Sekundentakt = 1
      Else
      Sekundentakt = 0
      End If
   End If


Loop