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!
16.09.2008, 13:42 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2008 14:15 von Lucki.)
' schrieb:Ich kann das Bsp. nicht öffnen, (ev. gehe ich von was falschem aus) aber was hier geschrieben wird kann ich nicht so glauben.
Warum geht den das (siehe Bild)?
Kein Ahnung. Gegenfrage: Warum sind diese 15,625 ms (1/64 s) Stufen hier da? Das Vi kannst Du schnell nachbauen. Ich kann Dir aber alles auch in jeder gewünschten Version konvertieren.
Gruß Ludwig
Edit: Bei mir reagiert dein Beispiel ganz anders. Mit diesem VI
erhalte ich je 10 mal starten ca. 9 mal das Ergebnis Null und einmal 16.625ms. Ich habe Windows XP SP3 und einen Athlon-Prozessoer mit nur 1 Kern. Was verwendest Du? Und verwendest Du auch?
Anzeige
16.09.2008, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2008 14:44 von RoLe.)
' schrieb:Kein Ahnung. Gegenfrage: Warum sind diese 15,625 ms (1/64 s) Stufen hier da? Das Vi kannst Du schnell nachbauen. Ich kann Dir aber alles auch in jeder gewünschten Version konvertieren.
Gruß Ludwig
[attachment=41939:elapsed4.png]
Edit: Bei mir reagiert dein Beispiel ganz anders. Mit diesem VI
[attachment=41941:elapsed5.png]
erhalte ich je 10 mal starten ca. 9 mal das Ergebnis Null und einmal 16.625ms. Ich habe Windows XP SP3 und einen Athlon-Prozessoer mit nur 1 Kern. Was verwendest Du?
Mit einem WAIT = 0ms oder (Wait until..) in der Schlaufe sieht das schon anders aus.
Ich habe mein Bsp. mal in eine Schlaufe 10000 gemacht und es dauert 10 sek., oder eben 1ms pro durchlauf, wie erwartet.
Zu meinem Rechner, der ist relativ schnell, Intel Core2 Duo 2,33GHz mit Vista Business.
EDIT: Hab es mal auf meinem alten Rechner (P4 1,8 GHz Win2000) gemacht, dort verhält es sich in etwa so wie du (Lucki) beschrieben hast.
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Jetzt schreib ich aber schnell diesen Posting FERTIG - bevor der Server wieder zwischendrinnen abstürzt.
' schrieb:Dann gibt es GetTickCount, der auf ms genau ist.
Und wenn ihr mich steinigt, ich beschwöre, dass ich schon mit GetTickCount in Delphi gearbeitet habe, der auf 1ms genau aufgelöst hat.
Jetzt hab ich nochmals nachgekuckt: Betriebssystem ist WinXP SP3. Hier hat der GetTickCount eine Auflösung von 15.650 ms. Der Befehl GetTickCount an sich geht sehr schnell: Springen in Kernel32.dll und dort lediglich 5 Befehle (einschließlich ret) ausführen. Der Befehl GetLocalTime jedoch, der 100ns auflösen kann, macht dagegen tausende von Befehlen (z.B. in ntdll.RltExtendedmagicDevide).
Das Problem bei GetTickCount: Da wird eine Speicherzelle, nämlich die, die mit den 5 Befehlen ausgelesen wird, hochgezählt. Und zwar im Raster wie in GetSystemTimeAdjustment steht. Da steht bei mir aktuell halt 156250 - und 156250*100ns ergibt diese obinösen 15.6250ms.
Früher unter DOS gab es einen Timerinterrupt, der alle 18 (oder doch 15) Millisekunden kam.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
23.09.2008, 11:04 (Dieser Beitrag wurde zuletzt bearbeitet: 23.09.2008 17:55 von Lucki.)
' schrieb:Jetzt hab ich nochmals nachgekuckt: Betriebssystem ist WinXP SP3. Hier hat der GetTickCount eine Auflösung von 15.650 ms.
Das stimmt mit meinen Ergebnissen überein. Wenn ich allerdings die Funktione GetSystemTimeAdjustment aufrufe, kommt ein anderer Wert heraus:
Allerdings weiß ich auch woran das liegt: Mein Sachwissen über den Aufruf externer Bibliotheken ist sehr "überschaubar". Könntest Du bitte mal beim angehängten VI nachsehen, was ich das falsch mache?
' schrieb:Mach mal aus allen Typen (Rückgabewert + Parameter) U32. DWord ist ein Doppel-Wort, also 2*16Bit. Boolsches wird auch als U32 gehandhabt.
Deine Werte kommen daher, weil die tatsächliche Zahl größer ist als 65535 und somit nicht mehr in 16Bit passt. Sie wird praktisch abgeschnitten auf 16Bit.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Anzeige
23.09.2008, 17:53 (Dieser Beitrag wurde zuletzt bearbeitet: 23.09.2008 17:53 von Lucki.)
' schrieb:Schnell bevor der Server wieder weg geht:
Deine Werte kommen daher, weil die tatsächliche Zahl größer ist als 65535 und somit nicht mehr in 16Bit passt. Sie wird praktisch abgeschnitten auf 16Bit.
Danke, das hat funktioniert. Damit sich niemand wundert: Habe oben das VI verbessert, so daß das Problem jetzt gar nicht mehr existiert
Es wäre gut, wenn auch Andere das VI mal laufen ließen. Vielleicht gibt es auch kleinere Quantensprünge als diese 15.625 ms.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Elapsed Time gequantelt?
Bei mir sind's auch 15,625 ms (Intel Pentium D mit Windows XP)
Gruß Markus
' schrieb:15.625 ms unter WinXP auf AMD Athlon System.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------