-         
+ Antworten
Ergebnis 1 bis 5 von 5

Thema: IR Fernbedienung - Signal kommt zweimal

  1. #1

    IR Fernbedienung - Signal kommt zweimal

    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    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 denke mal das wird an der Fernbedienung liegen.
    Ist bei mir jedenfalls auch so, dass das RC5-Kommand meist 2 mal gesendet wird, wenn ich eine Taste drücke.
    Macht ja unter Umständen auch Sinn das Signal mehrfach zu senden, da die Fernbedienung kein Feedback bekommt ob es wirklich beim Empfänger angekommen ist.
    Wenn ich bei meiner Fernbedienung (ist vermutlich bei RC5 immer so) eine Taste länger gedrückt halte, wird ein anderes Signal gesendet.
    Somit kann der Empfänger dann trotzdem unterscheiden ob ich die Taste nur einmal kurz gedrückt habe oder sie gedrückt halte.

    Ich vermute mal, dass das im RC5 Standard alles irgendwo definiert ist. Wenn du es ganz genau wissen willst, würde ich mal nach RC5 googeln.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.05.2004
    Ort
    Schönaich
    Alter
    40
    Beiträge
    315
    Dann müsste die Fernbedienung das Signal aber wirklich 2 mal senden,
    da sich ja das Toggle-Bit jedesmal ändern muss.
    Oder der RP5-Code ignoriert das Toggle-Bit. ???

    Hier ist das ein wenig beschrieben:
    http://users.pandora.be/davshomepage/rc5.htm
    Spinoza sagt (epist.62), daß der durch einen Stoß in die Luft fliegende Stein, wenn er Bewußtseyn hätte, meinen würde, aus seinem eigenen Willen zu fliegen. Schopenhauer

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.788

    2x Binärausgabe?

    Hi rosesa,

    dass das Programm teilweise 2x durchläuft, ist bei mir genau so, und zwar sowohl bei der Original-Demo und auch bei meinem Programm "Binärausgabe.bas", das du im Download-Bereich finden kannst.

    Das muss wohl am Sendeprotokoll liegen.

    Gruß Dirk

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.05.2004
    Alter
    40
    Beiträge
    8
    Hallo

    Also wenn ich mir Dein Proggi (übrigens sehr gut gemacht, mit der Binärausgabe ansehe, vermisse ich die Zeile zum zurücksetzen von LBYTE und HBYTE

    LBYTE=0:HBYTE=0
    gosub GET_IRDATA

    So hab ich's gemacht und meine Ergebnisse sind eindeutig.
    Ich weiß nicht, ob das unbedingt nötig ist, aber es funzt.

    Ich schicke übrigens die Daten über das ser. Kabel an ein Terminalprog.
    Da sieht man sie in Klarschrift. Scheint mir zum Testen der Fernbedienungen besser. Aber wie gesagt. Deine Lösung scheint mir auch ganz schick

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •