RC5 auswerten

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • RC5 auswerten

      Hallo Forengemeinde,

      irgendwie komme ich nicht weiter und stehe auf dem Schlauch.

      Ich habe ein Haupt und ein Unterprogramm und möchte mit Getrc5 vom von einem Teil zum Anderen springen. Der Sprung soll mit ein und der selben Taste geschehen. Wenn man die Taste länger betätigt soll NICHT hin und her gesprungen werden, sondern erst wenn sie erneut gedrückt wird.
      Das Tooglebit hab ich schon "extrahiert" aber damit komme ich irgendwie auch nicht weiter.

      Habt ihr dazu einen Vorschalg?

      Viele Grüße!
    • Hallo @Picard

      Deine Beschreibung ist etwas wage.
      Kannst du mal zeigen wie du es jetzt machst?

      Aber grundsätzlich klingt das mit der Taste mal nach Debounce (Tastenentprellen mit Verriegelung wenn man drauf bleibt, ohne das Programm zu blockieren).
      Und wohin gesprungen wird hängt vom Zustand deines Programms ab.

      Vielleicht schaust du dir mal dieses Projekt an. Da wird genau das gemacht. Allerdings nicht mit RC5.

    • Da hast du das toggle bit falsch verstanden. Das ändert sich bei jeden NEUEN Tastendruck. Heisst du drückst die Taste und hälst sie: Bit bleibt bei jedem Datenpaket gleich (z.b. 1). Lässt du kurz oder lang los und drückst wieder hat das Bit den zustand gewechselt (dann 0).
      So ich mich erinner wird auch immer mindestens 1 Datenpacket geschickt, egal wie kurz du drückst.
      MAn muss halt zusehen das die Empängerauswertung flott genug ist jedes Datenpacket zu verarbeiten

      Tobias
    • Da Du das Toggle-Bit schon "extrahiert" hast, schreibst Du dessen Wert bei einem Sprung einfach in eine Variable. Diese frägst Du vor einem Sprung einfach immer wieder ab. Hat sich der Wert nicht geändert, ist die Taste offensichtlich noch immer gedrückt und es erfolgt kein erneuter Sprung.

      Nachteil: Wird die Taste mal gedrückt, ohne dass Dein Empfänger das mitbekommt, wird der nächste Tastendruck ignoriert, da das Toggle-Bit (und damit die verwendete Variable zum Zwischenspeichern) nun wieder den gleichen Wert aufweist, wie beim letzten Sprung.

      Nette Grüße
      Robert
    • New

      Danke für eure Mithilfe!

      Ein Timeout von ca. 2sec nach dem letzten Empfang und damit eine "Neutralstellung", ob Togglebit 0 oder 1, ist die einfachste Variante.
      Ich hab noch ein paar andere Lösungsansätze, aber die muss ich erst probieren.