INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

While Loop Case überspringen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.01.2015, 16:09 (Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2015 16:09 von PaulC.)
Beitrag #10

PaulC Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Dec 2014

2014
2014
kA


Deutschland
RE: While Loop Case überspringen
Hallo,

nachdem Gerd mir die Idee vermittelt hat, dass ich zwei Laufvariablen/Counter auch nur mit einer Schleife erschlagen kann, gibt es nun einen counter_1 (Teilversuch) und einen counter_2 (Versuch). Bei Vorgabe von Array = kulmulierte Teilversuchszeiten, würde der gesamte Programmablauf in etwa wie folgt aussehen:

counter_1 = 0;
counter_2 = 0;
Zeit_Versuchsstart = now;

for i = 0:Array(end)
Zeit_Teilversuch = Array(i);
counter_1 = counter_1 + 1;
pause(Zeit_Teilversuch);

% Zählen Counter
if counter_1 = 5
counter_1 = 0;
counter_2 = counter_2 + 1;
end

% Berücksichtigung der veränderten Startzeiten, nachdem ein Versuch/Teilversuch abgebrochen wurde
if überspringen_counter_1 == true or überspringen_counter_2 == true
Zeit_Versuch = now;
% Ermittlung delta_Zeit_keypressed
delta_Zeit_keypressed = Array(counter_2*5 +counter_1) - Zeit_Versuch;
Array = Array - delta_Zeit_keypressed; % elementweise;
end

% Warten-Funktion
if stop_fkt = true
Wartezeit_Anfang = now;

while stop_fkt = true
Wartezeit_Ende = now;
end

delta_Zeit = Wartezeit_Ende - Wartezeit_Anfang;
Array = Array + delta_Zeit % elementweise;
end

end

Luckis Vorschlag ist nicht schlecht, allerdings gibt es den Nachteil, dass das Abbrechen eines Teilversuchs nicht sofort erfolgt. Die einzelnen Teilversuche sollen später einige hundert Sekunden dauern, weswegen ein sofortiges Reagieren von Vorteil ist.

In der angehängten Version funktioniert bisher das Zählen der Counter unter der Randbedingung, dass das Betätigen der (Teil-)Vesuch-abbrechen-Funktion sofort erfolgt.

Unklar ist mir, wie ich in Zukunft die Warten-Funktion so modifizieren kann, dass auch bei langer Wartezeit die counter konstant gehalten werden.

Euch wünsche ich ein frohes neues Jahr!


Angehängte Datei(en)
14.0 .vi  Beispiel_2.vi (Größe: 13,97 KB / Downloads: 196)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
While Loop Case überspringen - PaulC - 29.12.2014, 10:27
RE: While Loop Case überspringen - PaulC - 01.01.2015 16:09

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 6.833 02.02.2021 15:05
Letzter Beitrag: Lucki
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.258 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Parallel Port Read and Write Loop.vi rothhp 2 4.299 16.12.2015 16:08
Letzter Beitrag: rothhp
  While-loop Margi 2 3.332 21.09.2015 12:49
Letzter Beitrag: TDO
  For und While Loop katana 2 4.181 29.07.2015 11:14
Letzter Beitrag: Trinitatis
  Case Strukture mit 3 Case lola2014 13 11.490 23.10.2014 14:17
Letzter Beitrag: GerdW

Gehe zu: