Go Down

Topic: Schleife schrittweise durchlaufen (Read 301 times) previous topic - next topic

wnick51

Servus, :)

ich möchte eine for-Schleife schrittweise durchlaufen lassen und stehe nun vor dem Problem, wie sich das ganze realisieren lässt.

Die Schleife soll nach Betätigung eines Buttons komplett durchlaufen werden. Der 2. Durchlauf soll jedoch erst nach einer weiteren Betätigung durchlaufen werden.

Vorhanden ist folgender grundsätzlicher Aufbau:

Code: [Select]

void loop(){

  if(button2 == HIGH){

    Funktion2();
  }
}


void Funktion2(){

  for(int i = 0; i<=10; i++)
  {
    shiftOut(dPin, sPin, MSBFIRST, i);
    ...
    ...
    ...
  }



An der mit den Punkten markierten Stelle soll es erst weiter gehen, wenn Button 2 erneut gedrückt wird. Gibt es da vielleicht ein Funktion die mir weiterhelfen könnte ?

michael_x

Lass die for-Schleife weg. Das gilt eigentlich (fast) immer.

Merk dir statt dessen für den nächsten loop-Durchlauf ( das ist die Schleife ), wie weit du schon bist.

combie

Quote
Gibt es da vielleicht ein Funktion die mir weiterhelfen könnte ?
Nicht direkt!
Aber Konzepte, Design Pattern.

Ablaufsteuerung
Quote
Meine Standardantwort zu Ablaufsteuerungen:
Eine Stichworte Sammlung für Google Suchen:
Endlicher Automat,
State Machine,
Multitasking,
Coroutinen,
Ablaufsteuerung,
Schrittkette,
BlinkWithoutDelay, 
--
Blink Without Delay
Der Wachmann
--
Multitasking Macros
Intervall Macros
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

wnick51

Danke erstmal für die schnellen Antworten. Ich werde mich mal einlesen :)

Go Up