So in etwa wurde es bisher gemacht
- allerdings müssen 2 solche (synchrone aber unterschiedliche) Signale aufgenommen werden und zudem gibt es nicht immer einen Sprung zwischen zwei aufeinanderfolgenden Plateaus, sondern eher eine zufällige Änderung. Da das Sampling dann ja nicht synchron zu diesem 10kHz Signal geschieht, ist es nicht so einfach, allein aus dem Signal selbst zwischen aufeinanderfolgenden Plateaus sicher zu unterscheiden. Es muss also zusätzlich ein geeignetes "Taktsignal" mit aufgenommen werden (Rechteck), das eine wohldefinierte Flanke irgendwo in den 100µs besitzt und lange genug im high- bzw. low-Zustand verweilt, um mit der verbliebenen Samplingrate (3 Signale, daher nur noch ~83kS/s) zuverlässig gesamplet zu werden.
Das funktioniert im Prinzip, ist aber umständlich und implementiert das besagte "gating" eben durch postprocessing. Eleganter wäre es, gleich per Hardware den Teil des Signals zwischen den clock-Pulsen zu integrieren, der benötigt wird. Hardwaremäßig müsste die Karte dazu ja auch eigentlich in der Lage sein, denn intern wird der ADC für jedes Sample ja auch gestartet und gestoppt. Das Starten über ein externes Signal ist auch implementiert (ext. sample clock), aber das Stoppen offenbar nicht (?), was irgendwie - naja - sagen wir mal der vorhandenen Hardware nicht gerecht wird... Oder gibts dafür irgendwelche Properties/Methoden, die nicht über die gängigen DAQ-vis zugänglich sind?
Als Alternative dachte ich, das "Taktsignal" (bzw. den 10kHz-Trigger) als Start-Trigger zu verwenden und jeweils nur ~10 Samples oder so mit 125kS/s (2 Kanäle) aufzunehmen. Das müsste dann natürlich 10000 Mal pro Sekunde passieren, d.h. in einer normalen Labview-Schleife (DAQ start, DAQ read, DAQ stop) kommt das Programm sicher nicht hinterher. Kann man der DAQ-Karte so eine Art repetitive Messung vorgeben, die dann im Buffer gespeichert/akkumuliert wird und nur alle paar Sekunden vom Programm abgerufen wird?