Funktionen müssen immer außerhalb anderer Funktionen definiert werden.
Ansonsten Statusvariabile setzen und die Funktion ausführen nur wenn die Statusvariable 1 ist. Im if die Statusvariable auf null setzen.
Grüße Uwe
Könnte man nicht break verwenden?
Weil die loop() wird später in einer for-schleife aufgerufen, oder? Und eine for-Schleife
kann man mit break beenden.
Edit: Man könnte auch versuchen die loop() von void zu int zu verändern und dann bei der zur terminienden bedingung
ein return 0 einfügen, sonst erst als letzte Anweisung im Programm.
Addi:
Könnte man nicht break verwenden?
Weil die loop() wird später in einer for-schleife aufgerufen, oder? Und eine for-Schleife
kann man mit break beenden.
Edit: Man könnte auch versuchen die loop() von void zu int zu verändern und dann bei der zur terminienden bedingung
ein return 0 einfügen, sonst erst als letzte Anweisung im Programm.
Addi
Das break müsste aber direkt in der for() Schleife sein. Innerhalb einer in der Schleife aufgerufenen Funktion funktioniert es nicht (wär ja auch schlimm).
Und warum soll man in den Arduino Sourcen rumpfuschen (was bei jedem Update angepasst werden müsste) wenn es doch eine einwandfreie Lösung gibt?
Normale Programme (welche in der Regel endlos laufen) nutzen setup() und loop().
Programme mit nur einem Durchlauf nutzen halt nur setup() und lassen loop() links liegen.
Und wenns dann noch der Sonderfall sein sollte, dass das Programm z.B. genau 5x laufen soll, nimmt man einen Zähler und nach dem fünften Lauf gibts einfach ein while(true).
Kleiner Tip: zum Programmieren gehört ein gewisses Maß an Pragmatismus. Sonst verrennt man sich und kommt auf keinen grünen Zweig.