Wow hey vielen Dank euch beiden!!!
Vor allem dir Lucki fürs VI und die Arbeit die du dir gemacht hast!
Hab mir dein VI jetzt solange "angeschaut" bis ichs endlich verstanden hab!
Das Konzept mit ner State Machine ist ne super Idee!
Nachdem ich dein VI verstanden hab hab ich dann versucht mir mein eigenes zu schreiben - wollts nich einfach übernehmen sondern selbst neu entwickeln weil nur so kann ich am Ende sicher sein, dass ichs wirklich verstanden hab ;-) (vorrausgesetzt es funktioniert am Ende)
Und genau das tut es noch nicht... Bei mir werden noch nicht gleich viele Zustandswechsel gezählt wie bei deinem - aber ich denk ich hab irgendwo noch nen 0/1 er Dreher drin. Btw: dein VI passt glaub ich nicht so ganz mit deiner gemalten Statemachine zusammen weil die Bitorder nicht die gleiche ist - aber an sonsten super!
Was meinst du mit:
Zitat:Ich finde nur, daß doch die hier fehlende Position als Funktion der Zeit die eigentlich interessierende Größe ist, und nicht irgendwelche Hilfsgrößen auf dem Weg dahin.
Ich hab halt bisher versucht die Flankenwechsel richtig zu zählen. Über die bekomm ich ja auch die relative Positionsänderung raus. Die Idee mit den vier Zuständen ist allerdings besser.
Aber du hast schon recht was die Endauswertung der Größen betrifft. Wollte erstmal sicherstellen dass richtig gezählt wird und mir dann Gedanken darüber machen wie die Ergebnisse ausgewertet werden sollen.
Zu den Array-Operationen:
Ich lese pro Schleifendurchlauf den kompletten Pufferinhalt des Controllers als Array ein. Nachdem der Puffer 62KByte gross ist ist das Array auch im Extremfall so gross. Ich dachte halt, dass die Vektoroperationen von LabVIEW schneller wären als jedes Byte einzeln zu betrachten.
Allerdings hab ich mal n bischen rumgetestet und festgestellt dass die Laufzeiten sich erst bei Vektorgrößen ab 1 Million Werte deutlich unterscheiden...
Zur Verarbeitungsgrenze:
Ich taste ja nicht in LabVIEW direkt mit 500kHz ab. Das ganze läuft so dass der Contoller die I/O Ports mit ner eingestellten Abtastrate (bis zu 3 MBaud/sec) abtastet und die Werte in nen Puffer schreibt. Diesen Puffer les ich dann in einem Schleifendurchlauf komplett leer und verarbeite die Daten nachträglich.
Deswegen wollt ich auch Vektoroperationen haben weil ich dachte dass dann ein Schleifendurchlauf schneller fertig ist und der Puffer bis zum nächsten mal Auslesen nicht so voll wird.
Dazu kommt allerdings noch, dass der Controller die Lesedaten noch in einen USB-Strom wandeln muss weil ich über USB mit ihm kommuniziere.
Ich weiß dabei nicht was das ganze dann an Performance schluckt.
Wenn ich mir die beiden Signale die ich vom Motor bekomm direkt am Oszi anschau sind es zwei wunderschön gleichmäßige Rechteckssignale die um genau 89,8 Grad phasenverschoben sind.
Les ich das ganze aber in LabVIEW ein - ihr habt ja die Fehlerhaften Eingabedaten (fehlerhafte Zustandswechsel) ja gesehn - hab ich plötzlich keine gleichmäßigen Rechteckssignale mehr!
Allerdings müsste die Abtastrate des Controllers genügen! Zwischen zwei Flanken liegen immerhin ca. 40 Abtastwerte!
Ich benutz das Modul DLP-2232M von der Firma DLP Design welches den Chip FT2232C von FTDI verbaut hat.
Vielleicht fällt euch ja noch was dazu ein?
Grüße
Adrian