So wirklich springt mich nix an, ausser, dass du die Array-Werte schon wegschreibst, wenn sie noch garnicht da sind (weil "arridx" fängt ja bei 1 an und muss z.b. "5" überhaupt erstmal erreichen)

würde ich mal folgendes probieren (tricky):
Code:
Dim Inputstring As Byte
'-------------------------------------------
Dim x_BE As Byte                     'byte 1
Dim x_01 As Byte                     'byte 2
Dim x_03 As Byte                     'byte 3
Dim cntr  As Byte                     'byte 4
Dim Rot_top As Byte                 'byte 5
Dim Gruen_top As Byte             'byte 6
Dim Blau_top As Byte                'byte 7
Dim Rot_right As Byte                     'byte 8
Dim Gruen_right As Byte                     'byte 9
Dim Blau_right As Byte                     'byte 10
Dim Rot_left As Byte                     'byte 11
Dim Gruen_left As Byte                     'byte 12
Dim Blau_left As Byte                      'byte 13
Dim Myarr(13) As Byte at x_BE OVERLAY                    
Dim Arridx As Byte
Dim I As Byte
der Interrupt wär dann nurmehr wie folgt
Code:
Onrxd:

     Inputbin Inputstring                   'Hex einlesen
     If Inputstring = &HBE Then         'Wenn Sync erkannt, dann starten
         Timercount = 0
         Arridx = 0
    End If
    if Arridx < 13 then Incr Arridx   ' sicherheitshalber der Teufel und Murphy schlafen nicht
    Myarr(arridx) = Inputstring  

' --------------(das genügt)----------------
Return
die werte sind dann automatisch im richtigen Feld, aber nur, wenn sie auch kommen