Hallo dauce,
Zitat:Wie krieg ich es hin, dass die For-Schleife immer bei Tastendruck mit dem alten Wert(Array) ausgeführt wird? Ich komm nicht drauf.
Habe ich doch oben schon gesagt: du musst dir den letzten Zustand deines Arrays
merken!
Und wie merkt man sich Daten, um sie in der nächsten Iteration wieder zur Verfügung zu haben? Das weißt du doch auch schon: mit einem Schieberegister!
- Was soll überhaupt das Ausführen der (äußeren) FOR-Loop entweder einmal oder Null-mal? Wenn man Code anhand einer Bedingung ausführen will, nimmt man eine Case-Struktur!!! Warum sind diese Konstanten als DBL hinterlegt statt als I32?
- Was soll diese Abfrage von "i" innerhalb der äußeren FOR-Loop? Entweder die Loop wird null-mal durchgeführt und der Vergleich findet NIE statt - oder die Loop wird genau einmal ausgeführt und "i" ist dann NULL und die innere FOR-Loop wird ZWEImal durchlaufen…
- Wozu überhaupt "i" auf ">=0" testen? Wenn dieser Code überhaupt ausgeführt wird, dann ist "i" IMMER größer/gleich NULL!
- Was willst du mit der Case-Struktur innerhalb der inneren FOR-Loop erreichen? Was willst du mit dem nichtinitialisierten Schieberegister hier erreichen?
(Bis auf das nichtinitialisierte Schieberegister haben die anderen Dinge NICHTS mit LabVIEW an sich zu tun, das ist einfach nur unsinnig geplanter Code…)
Beispiel zu deinem VI:
Ich würde eine Event-Struktur statt der Tastaturabfrage-Funktionen verwenden…
In die Schleife gehört noch eine Wartezeit. Es sollte einen Stopp-Button geben…
Ernst gemeinter Tipp: Vor dem eigentlichen Programmieren zeichnet man sich einen PAP auf ein Blatt Papier!