Ich habe mir vor kurzem einen RP5 zugelegt und bin sehr happy damit.

Jetzt habe ich ein kleines Problem mit der IR Kommunikation. Ich habe ein paar Fernbedienungen ausprobiert und eine davon (SEG TV) scheint auch zu funktionieren – jedenfalls reagiert das Testprogramm (DISPLAY_IR_CODE.bas), wenn ich eine Taste drücke.
Nun war mir das Zählen etwas zu langweilig und ich habe das Programm so verändert, dass HBYTE und LBYTE als Binärzahl dargestellt werden.
Zuerst werden jeweils die Bits 7-4 dargestellt, dann folgt eine Pause und die Bits 3-0 werden dargestellt. Wenn alle 4 Werte angezeigt wurden, startet das Programm wieder von vorne. Jetzt ist es so, dass das Programm manchmal zweimal durchläuft, bevor es wieder auf ein IR-Signal wartet. Hat jemand ähnliche Erfahrungen gemacht? Kann das an der Fernbedienung liegen, oder kann ich da im Programm was verbessern?

Ich hab schon nach einer Antwort gesucht, habe aber leider Nix gefunden.

Hier mein Programm:

Code:
...
define ADR           byte[6]  ' IR Adresse
define CMD           byte[7]  ' IR Wert
define OUTPUT        byte[8]  
define VAR           byte[9]  
...
#LOOP
pause 5
sys COMNAV_STATUS
if IR_F = off then goto LOOP
gosub GET_IRDATA
if LBYTE and HBYTE = &HFF then goto LOOP
ADR=HBYTE:CMD=LBYTE

beep 100,5,10:beep 100,5,10:beep 100,5,10

' HByte Bits 7, 6, 5, 4
OUTPUT = (ADR AND &HF0) SHR 4
if OUTPUT > 0 then gosub show else gosub null

' HByte Bits 3, 2, 1, 0
OUTPUT = ADR AND &H0F
if OUTPUT > 0 then gosub show else gosub null

' HByte Bits 7, 6, 5, 4
OUTPUT = (CMD AND &HF0) SHR 4
if OUTPUT > 0 then gosub show else gosub null

' HByte Bits 3, 2, 1, 0
OUTPUT = CMD AND &H0F
if OUTPUT > 0 then gosub show else gosub null

beep 100,5,10:beep 100,5,10:beep 100,5,10

goto LOOP
'-------------------------------------------
' Funktionen
'-------------------------------------------
#show
  ' IN:  OUTPUT
  VAR = OUTPUT AND 8
  if VAR = 8 then gosub LED1ON
  pause 5
  VAR = OUTPUT AND 4
  if VAR = 4 then gosub LED2ON
  pause 5
  VAR = OUTPUT AND 2
  if VAR = 2 then gosub LED3ON
  pause 5
  VAR = OUTPUT AND 1
  if VAR = 1 then gosub LED4ON
  pause 200
  beep 100,10,100
  gosub LEDSOFF
  return

#null
  gosub LED1ON:pause 5:gosub LED1OFF
  gosub LED2ON:pause 5:gosub LED2OFF
  gosub LED3ON:pause 5:gosub LED3OFF
  gosub LED4ON:pause 5:gosub LED4OFF
  pause 200:beep 100,10,100
  return
...
Vielen Dank & Grüße