05.11.2005, 03:28
Ein kleines Problem, aber wichtig...
Ich will auf ein Eingangssignal hin triggern, um eine Ausgangsspannung zu erzeugen. Die Dauer der Spannungserzeugung kann recht lang sein, z.B. eine Minute. Die Daten fuer die Ausgangsspannung werden aus einem Array ausgelesen, und das entsprechende Arrayelement wird durch einen Eingangstimulus (Digital In Task) indiziert.
Mein Problem ist, dass die Funktion 'DAQmx Wait Until Done' die Zeitbegrenzung ('timeout') fuer die ganze Geschichte setzt, und zwar anscheinend sowohl fuer die Wartezeit fuer den Trigger als auch fuer die Dauer der Signalerzeugung. Dabei kann die Signalerzeugung, wie gesagt, recht lange dauern, waehrend ich zum Beispiel alle 2 Sekunden gerne ueberpruefen wuerde, ob nicht ein anderer Eingangsstimulus eingetroffen ist und sich die Ausgangsspannung, die ich erzeugen will, geaendert hat.
Das heisst: Wenn 2 Sekunden lang kein Trigger kommt, moechte ich den Digital In Task auf ein neues Signal hin pruefen. Da die Signalerzeugung so lang ist, habe ich den timeout-Parameter von 'Wait Until Done' auf -1 gesetzt, und deswegen blockiert diese Funktion den ganzen Rest, bis der Trigger eintrifft. Setze ich 'timeout' auf 2 Sekunden, kann ich keine 60 Sekunden lange Ausgangsspannung erzeugen.
Alles klar? :-) Mir nicht... Waere super, wenn mir jemand helfen koennte!
Danke im voraus.
Ich will auf ein Eingangssignal hin triggern, um eine Ausgangsspannung zu erzeugen. Die Dauer der Spannungserzeugung kann recht lang sein, z.B. eine Minute. Die Daten fuer die Ausgangsspannung werden aus einem Array ausgelesen, und das entsprechende Arrayelement wird durch einen Eingangstimulus (Digital In Task) indiziert.
Mein Problem ist, dass die Funktion 'DAQmx Wait Until Done' die Zeitbegrenzung ('timeout') fuer die ganze Geschichte setzt, und zwar anscheinend sowohl fuer die Wartezeit fuer den Trigger als auch fuer die Dauer der Signalerzeugung. Dabei kann die Signalerzeugung, wie gesagt, recht lange dauern, waehrend ich zum Beispiel alle 2 Sekunden gerne ueberpruefen wuerde, ob nicht ein anderer Eingangsstimulus eingetroffen ist und sich die Ausgangsspannung, die ich erzeugen will, geaendert hat.
Das heisst: Wenn 2 Sekunden lang kein Trigger kommt, moechte ich den Digital In Task auf ein neues Signal hin pruefen. Da die Signalerzeugung so lang ist, habe ich den timeout-Parameter von 'Wait Until Done' auf -1 gesetzt, und deswegen blockiert diese Funktion den ganzen Rest, bis der Trigger eintrifft. Setze ich 'timeout' auf 2 Sekunden, kann ich keine 60 Sekunden lange Ausgangsspannung erzeugen.
Alles klar? :-) Mir nicht... Waere super, wenn mir jemand helfen koennte!
Danke im voraus.