Hallo

Deine Debug Ausgaben sind nach meinem Geschmack zu lang. Ich nehme dafür immer nur ein Zeichen, damit es schnell geht, auch mit Sendebuffer.


Code:
'Hier werden die Daten empfangen und geprüft auf die Bitzeiten
'Aufruf alle 80 µs
Timer0_overflow:

   Timer0 = Timer0_reload
   Incr Signal_count


   'Ende gefunden oder Signal zu lang
   If Signal_count > Pulse_max Then
          print "A"
      'Startbit = 1 and Pruef_bit = 0 dann Daten übergeben
      If Daten_temp.pruef_bit = 0 And Daten_temp.start_bit = 1 Then
        Print "B"
         Daten = Daten_temp
         Set Daten_empfangen
      End If

      Daten_temp = 0

  End If

  'Flankenwechsel ??
  If Signal <> Signal_old.1 Then
      Print  Signal_count

      'neuen Zustand merken
      Toggle Signal_old

      'Pulse zu kurz   ??
      If Signal_count < Pulse_min Then
              Daten_temp = 0 
               Print "C"
       End if


      'Start oder Abfragezeitpunkt ??
      If Daten_temp = 0 Or Signal_count > Pulse_1_2 Then
               print "D"
          'wenn noch nicht zuviele Daten, dann eine Stelle schieben
          If Daten_temp.start_bit = 0 Then
                 Shift Daten_temp , Left , 1
                 Print "E"
          End if

          'Bit setzen wenn 0, da der Empfänger das Signal um 180° dreht, 0 = 1 1 =0 -> nicht notwendig
          If Signal_old = 1 Then
                  Incr Daten_temp            ' hier 1 da receiver keine Phasenverschiebung macht
                   Print "F"
           end if


         Signal_count = 0

     End If


  End If


Return

Probier das mal so

MFG
Dieter