Hallo Henry,

hier mal ein Code-Ausschnitt, mit dem man zumindest nur dann zum Lesen des RC5-Codes gezwungen wird, wenn da wirklich ein Signal anliegt. Sonst wird Getrc5 nicht angesprungen. Das bringt Zeit im Hauptprogramm für andere Dinge:
Code:
Dim I As Byte
Dim Address As Byte
Dim Command As Byte
Dim Rc5_flag As Bit

'IR-Empfänger an Pind.2 initialisieren:
Config Rc5 = Pind.2
On Int0 Rc5_receive
Enable Int0
Config Int0 = Falling
Enable Interrupts

'Hauptprogramm:
Reset Rc5_flag
Do
  For I = 1 To 4
    Locate I , 1
    Lcd "Warte auf IR ..."
    If Rc5_flag = 1 Then
      Reset Rc5_flag
      Gosub Rc5_display
    End If
    Wait 1
  Next I
  Cls
Loop

'RC5 auf LCD anzeigen:
Rc5_display:
  If Address <> 255 Then
    Command = Command And &B01111111
    Cls
    Locate 2 , 1
    Lcd "Addr:   Cmd:"
    Locate 3 , 1
    Lcd Address ; " "
    Locate 3 , 9
    Lcd Command ; " "
    Wait 1
    Cls
  End If
Return

'RC5 einlesen:
Rc5_receive:
  Disable Int0
  Enable Interrupts
  Getrc5(address , Command)
  Set Rc5_flag
  Gifr = Gifr Or &B01000000                       'Clear Flag Int0
  Enable Int0
Return
Gruß Dirk