Tastenunterbrechung einer for/next schleife

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

    • Tastenunterbrechung einer for/next schleife

      Hallo Forengemeinde,

      kann man eine For/Next Schleife durch einen Tastendruck auf Anfang stellen ?
      Der Sinn ist :
      Wir haben eine Zugsteuerung die bei Wagentrennung ein Signal gibt und den Zug stoppt.
      Darin enthalten ist eine Totmannsteuerung mit Taste,nach Zeit ertönt ein Summer,die Taste muss
      gedrückt werden und der Zug fährt weiter.Drückt man die Taste nicht,wird das Zugstopprogramm
      ausgelöst.Das ganze war mal in C-Controll geschrieben.Das Zugstoppprogramm habe ich in
      BASCOM umschreiben können und funktioniert.Nur mit der Totmannschaltung habe ich Probleme.
      Deswegen meine Frage .Welche BASCOM Befehle wären für mich nützlich.

      Gruß
      Jürgen
    • Source Code

      1. dim i as byte
      2. ' Für Taste_1 und Taste_2 muss der jeweilige Pin am entsprechenden Port angegeben werden.
      3. ' z. B. PinB.1 und PinB.2
      4. for i = 1 to 10
      5. 'tuh was...
      6. if Taste_1 = 1 then i = 0 'Start von vorne
      7. if Taste_2 then exit for 'for ... next verlassen
      8. next i
      Display All
    • Auf Anfang stellen nicht, aber du kannst den Wert selbst auf Anfang stellen

      For I = 1 To X
      If Taster = 1 Then I = 1
      Next

      Ein For-Schleife verlässt du mit Exit For

      Der Watchdog kommt nicht in Frage?

      Die Abfrage eines Totmannschalters in einer For-Schleife ist nicht optimal.
      In der Zeit läuft der Rest des Programmes nicht.
      Besser die Abfrage in der laufenden Hauptschleife und bei Ereignis eine Variable hochgezählt.
      Wenn die Variable > X Then...

      Eleganter ist, das mit dem Timer zu koppeln, der eh die Zeit mitzählt.
      Wenn der Taster gedrückt ist, wird ein Variable mit einem Wert von z.B. 100 befüllt.
      Im Timer, der alle 100ms kommt, wird die Variable dekrementiert.
      Ist sie null, dann ...

      Gruß, Michael