Hallo Blamaster

Ich mache das immer so.

Gesendet wird immer ein String also z.b >01_XXX_250_2F (also Ascii zeichen )


> =SyncByte
01 = Modul
xxx = Befehl
250 = wert
2F = Checksum ( erfunden, also keine Antworten Checksum stimmt nicht)



Code:
Const Sync_byte = 62 
Dim Startbit As Bit
Dim Rxd_buffer As String * 32

startbit = 0

'########################## im RXD Interrupt 
Rxd_byte = Udr

If Rxd_byte = Sync_byte And Startbit = 0 Then
            Startbit = 1
            Rxd_buffer = ""
            Rxd_in_counter = 0
End If

If Startbit = 1 Then

            Incr Rxd_in_counter

            If Rxd_byte <> 13 Then
                     If Rxd_in_counter < 30 Then
                           Rxd_buffer = Rxd_buffer + Chr(rxd_byte)
                     End If
               Else
                     Buffer = Rxd_buffer
                     Disable Urxc
                     Startbit = 0

            End If
End If
Wenn jetzt > ( 62 ) ankommt wird das Sartbit auf 1 gesetzt und der Buffer geleert, jedes weitere Byte wird jetzt in den Buffer geschreiben bis die 13 (Return) ankommt, der Interrupt wird dann abgeschalten bis du z.B den String verarbeitet hast oder so ......

Man kann da so viel machen und jeder machts anders.

Mfg