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:
Gruß DirkCode: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







Zitieren

Lesezeichen