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!
Hallo,
ich hab wiedermal eine Frage - hatte ich schon mal so ähnlich gestellt, aber ich konnte es noch nicht lösen
Wenn man das VI aus dem Anhang laufen lässt, wird in der Mitte unten die Schleifendurchlaufzeit angzeigt. Wenn der Schalter auf False ist, hab ich eine Schleifendurchlaufszeit von ca. 15 ms, wird er auf True geschaltet (werden die Grafiken und alle Anzeigen ständig aktualisiert) erhöht sich die durchlaufzeit erheblich. Gibt es eine Möglichkeit, das ganze besser zu implementieren, damit es schneller abgearbeitet wird? Die beste Lösung die ich gefunden hab, ist an die Stelle der Schalters einen "Elipsed Timer" (mit zB 0,1 sec) hinzusetzen - also wird nur alle 0,1 sec aktualisiert - Nachteil: es ruckelt, und alle 0,1 sec hab ich erst wieder einen langsameren Durchlauf.
Und, wenn der Schalter auf False ist - wie kann man die Schleifendurchlaufzeit noch verbessern? Optimal wäre für mich max. 5ms, allerdings, benötige ich mindestens eine FFT, sowie 1-2 Filter - geht das überhaupt?
Und was mir noch aufgefallen ist: In der Time-Array-Anzeige sieht man (entweder Schalter auf True, kurz laufen lassen - stoppen, oder Schalter auf False, dann auf True um es anzuzeigen - bleibt sich egal, ist in beiden Fällen so), dass recht oft zwei oder noch viel mehr Arrayeinträge gleich sind - warum? Wie kann es das geben?
Hoffentlich konnte ich mein Problem (mit dem ich mich nun schon ewig rumschlage) halbwegs erklären.
Wenn man die richtige Stelle sucht, findet man sowas:
Kann es sein, dass "Elipsed Time" nur eine Auflösung von 15 ms hat?
Falls dies der Fall ist, funktioniert es quasi eh richtig, kann nur nicht dargestellt werden.
Aber das Eigentliche Problem mit der Schleifendurchlaufszeit bleibt bestehen
nimm statt dem express vi
das tick count im ms
aus derselben kategorie und dann lass dir mehr stellen anzeigen, dann siehst du dass du viele schleifendurchläufe hast
(bei mir waren es 50 pro ms)
Danke schon mal für die schnellen Antworten, das mit dem Express VI hab ich schon geändert - das war auf jedenfall ein super Tipp! (ja, ich hab auch schon eingesehn - 2 Monate Gefängnis ;-) )
Das mit dem QueryPerformanceCounter - lässt sich das problemlos als LV 8.0 speichern? Wenn ja - wäre supernett
Jens, wie meinst du ich soll das Array, neben die Graphen legen, nicht darüber? Bitte um eine ganz kurze Erklärung.
' schrieb:Danke schon mal für die schnellen Antworten, das mit dem Express VI hab ich schon geändert - das war auf jedenfall ein super Tipp! (ja, ich hab auch schon eingesehn - 2 Monate Gefängnis ;-) )
Das mit dem QueryPerformanceCounter - lässt sich das problemlos als LV 8.0 speichern? Wenn ja - wäre supernett
Lad die DLL (s. Link oben) runter und binde die Aufrufe ein...
' schrieb:Jens, wie meinst du ich soll das Array, neben die Graphen legen, nicht darüber? Bitte um eine ganz kurze Erklärung.
Du hast doch über den Graphen dein Array (wenn auch nur zu Testzwecken) drüber gelegt. Mach das nicht, wenn es auf Performance ankommt. Controls nicht überlappen lassen!
Und zu Performance: Probier doch mal eine eigenen "Anzeigeschleife" parallel zur "Rechenschleife", wobei du die Daten dann z.B. per Notifier oder Queues übertragen kannst.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!