2 Loops auf einmal. Ist das möglich ???

Ich habe eine kleine Frage,
ich möcht in meine Programm 2 Lopps laufen lassen (In der ersten werden Variabeln durc Tastendruck geändert und in der zweiten wir aus diesen Variabeln dann etwas auf das Display geschrieben).

Ist es möglich ???

Und wenn wie ???

Danke schon im Voraus

(Arduino Uno, Arduino 1.0.5 Software)

Zwei loops parallel geht nicht, aber was du beschreibst ist ja auch nichts, was man auf zwei parallele Tasks aufteilen müsste. Vermutlich reichen dir schon zwei einzelne Funktionen, die abwechselnd aufgerufen werden. Ganz einfach nach dem EVA-Prinzip, also für jede Eingabe, Verarbeitung und Ausgabe eine entsprechende Programmroutine. Bremst man diese Funktionen nicht durch delay() aus, wird quasi in Echtzeit reagiert.

void setup() {
// ...
}
void loop1() { }
void loop2() { }


void loop() {
loop1();
loop2();
}

Falls man ein paar mehr Funktionen haben will und eine Struktur bei der man nicht den überblick verliert kann man auch dies hier nutzen.

simpleThreads

Jomelo:
Falls man ein paar mehr Funktionen haben will und eine Struktur bei der man nicht den überblick verliert kann man auch dies hier nutzen.

simpleThreads

Was ich jedem empfehlen kann!

ich würde da ja die Protothreads empfehlen. Auch wenn die Verwendung geringfügig mehr Verständnis erfordert als die SimpleThreads, sind Protothreads schon seit Jahren stabil und ausgereift im Einsatz und brauchen kaum Speicher.

  • Norbert

??? Protothreads ist sicher toll.
Aber keine Lösung für jemanden, der fragt "2 Loops auf einmal. Ist das möglich ???"

Die eigentliche Antwort hat sth schon gegeben:

  • Brauchst du nicht.
    2 Funktionen (Taster und Display mit gemeinsamen Variablen) ist kein Problem.
    Wieso meinst du, 2 Loops zu brauchen?

Und sschultewolter hat eine Lösung gezeigt, die zwar 2 Byte auf dem Stack braucht,
aber sicher weniger Speicher als alles andere :wink: