Hallo liebe LVF-Mitgleider,
ich habe die letzten 8 Wochen das LVF (und auch den Rest des www) durchkämmt und versucht mir genug über DAQmx beizubringen um mein Problem das eigtl. simpel ist zu lösen. Leider hat es nicht gereicht
vlt hat ja hier jmd. die rettende Idee
Ich möchte den Bildsensor einer Kamera auslesen, der Sensor hat 24x24 Pixel und unterscheidet nur Intensitätswerte, die er als Analogspannungspegel zu je einem 6er Block ausgibt und den ich dann mit dem NI USB-6341 Interface einlesen möchte.
Um dem Chip zu sagen ich möchte jetzt den ersten 6er Block der ersten Zeile auslesen, muss ich zuerst den Frametrigger (FTRIG) und den Horizontaltrigger (HTRIG) für einen Clock cycle auf high setzen.
Die genaue Timing Tabelle hab ich mal in ein Bild gemalt (
)und hoffe das es so einigermaßen verständlich ist. Also da der Chip die Pixelwerte nur immer in 6er Blöcken ausspuckt braucht man dementsprechend 4 Blöcke á 6 für eine Zeile von 24 Pixeln und das dann eben mal 24 bei 24 Zeilen.
Die Masterclock (ca. 500 Hz, variabel) , nach der sich hier alles zu richten hat erzeugt ebenfalls LabVIEW mithilfe eines Counters, den ich auf einem Pin ausgebe und so in den Chip einspeise. (VI angehängt)
MCLK generation.vi (Größe: 23,5 KB / Downloads: 228)
Bisher hatte ich versucht das Timing über Timed Loops zu realisieren (kläglicher Versuch im Anhang)
DAQ Readout.vi (Größe: 82,6 KB / Downloads: 232)
, hat allerdings nicht funktioniert und zudem habe ich auf der NI Page gelesen, das man Timed Loops bei USB Hardware vermeiden sollte, aufgrund der hohen Latenz von USB (10-100ms).
Nun zu meiner Frage:
Wie kann ich dieses Timing in LabView realisieren?
Zusammenfassung meiner Konfiguration:
- NI X-Series USB-6341
- LabVIEW 2012
- jede Menge Verwirrung bzgl. Timed Loops/Trigger/Event structures
Vielen Vielen Dank schon im Vorraus an alle die sich jetz wegen mir den Kopf zerbrechen
Gruß
Eixi