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
Lesezeichen