Alias tauschen, Taster Tauschen

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

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Alias tauschen, Taster Tauschen

      Moin, ich versuche zwei Taster in ihrer Funktion zu tauschen je nachdem wie eine Variable konfiguriert wird. So geht es nicht...

      BASCOM Source Code

      1. Dim Switchhandlebar As Eram Byte
      2. 'Switchhandlebar = 1
      3. If Switchhandlebar = 1 Then
      4. Handle_up Alias Pina.5
      5. Handle_down Alias Pina.6
      6. else
      7. Handle_up Alias Pina.6
      8. Handle_down Alias Pina.5
      9. End If
      Aber wie dann? Zerbreche mir schon eine Weile den Kopf. Die Aliase werden öfters im Programm genutzt. Klar könnte ich jeweils direkt die Pins abfragen aber das wird unübersichtlich. Sollte ich die Pins als Variable deklarieren und vor Benutzung abfragen?

      Gruß, Martin
    • Ein Alias ist im Grunde ein Name/Bezeichner für ein Pin.
      Und das kann man sich wie eine Konstante (Symbolname) vorstellen, die ersatzweise für Pins gilt.
      Und Konstanten können zur Laufzeit des Programms nicht geändert werden.

      Deshalb funktioniert dein Code-Schnipsel nicht mit dem Alias-Umbenennen.

      Je nachdem was du in deinem Programm vor hast, kannst du aber anstelle der zu tauschenden Pins eine Routine aufrufen, die abhängig von dem Wert in Variable "SwitchHandleBar" die Pins setzt.

      Z.B. so:

      BASCOM Source Code: Pins tauschen. Alias bleibt gleich.

      1. Dim SwitchHandleBar as ERAM Byte
      2. ' Hauptschleife
      3. Do
      4. Call DoSwitch(SwitchHandleBar)
      5. Loop
      6. ' Routine "tauscht" Pins
      7. Sub DoSwitch(Byval option as Byte)
      8. Select Case option
      9. Case 0
      10. Set Handle_up
      11. Reset Handle_down
      12. Case 1
      13. Reset Handle_up
      14. Set Handle_down
      15. End Select
      16. End Sub
      Display All
      In deinem Programm setzt du dann die entsprechenden Pins nicht mehr direkt (Set Aliasname/Reset Aliasname), sondern über die Routine.
      So hast du zentral die "Umschaltung" als Routine und im Programm ersetzt du die Pinsetzerei durch den Aufruf der Routine.
    • So ähnlich. Ich hab eine Schaltereinheit am Lenker mit hoch und runter. Wenn jemand diese Einheit statt rechts, links montiert sind die Tasten vertauscht, d.h. die Schaltereinheit steht auf dem Kopf. Ein direktes versetzen geht Bauartbedingt nicht. Um jetzt nicht die Verkabelung ändern zu müssen wollte ich das elektronisch durch ein Konfigurationsbit umswitchen.