Hallo!
Nach unzähliger Hilfe von euch hab ich es nun geschafft und mein Programm ist eigtl. komplett fertig.
Jetzt ist mir etwas aufgefallen, bezüglich der Geschwindikeit. Wenn man die Grafiken ausblendet wird die Durchlaufrate viel höher (check ich auch)... dadurch bin ich aber dann auf folgendes drauf gekommen: (ohne Grafikanzeige)
Zum testen hab ich eine Funktion eingebaut, um über eine Zufallszahl meinen analogen USB 6009-Eingang zu simulieren (ist natürlich viel viel schneller).
Wenn ich meine Messung 10 sec laufen lasse komm ich auf ca. 200000 Werte. Aber wenn man es dann genau betrachtet (zb mit Excel) kommt man dann drauf, dass ca. alle 15 ms (=> ca 670 Hz Abtastrate) ~160 Werte zur gleichen Zeit aufgenommen wurden. Warum das?
Wenn ich keine Zufallszahl verwende, sondern das Signal von meinem NI USB 6009, komm ich auf ca 630 Messwerte in 10 sec. (es werden nie 2 Werte zur gleichen Zeit aufgenommen).
So... ist ja schon mal ganz okay, die Abtastrate ist ca. die gleiche wie die "echte" im Fall mit der Zufallszahl.
Nun zur wesentlichen Frage:
Wodurch wird meine Abtastrate begrenzt? Was kann ich machen um sie zu erhöhen? Theoretisch sollten ja (bei 3 verwendeten Kanälen, wie ich es brauche) 16kHz Abtastrate möglich sein. Bei 16kHz hätte ich pro Schleifenzyklus 62,5 us Zeit - eigentlich ja recht viel... (und bei der Zufallszahl kommt man ja irgendwie auf ~20kHz, auch wenn da wo n Fehler drinnen ist - also sollte es ja schnell genug gehn)
Im Anhang befindet sich mein Programm, in der Form, in der ich es zum Testen verwendete.
Vielleicht könnt ihr mir ja auch noch allgemeine Tipps zur Optimierung geben.
Vielen vielen Dank (alleine für die Mühe des durchlesens
)
Reinhard
reinhard.zip (Größe: 218,86 KB / Downloads: 199)