Hallo,
ich versuche, deinen Sourcecode zu verstehen. Immerhin schon positive Fortschritte gegenüber dem letzten Thread,
http://www.labviewforum.de/Thread-NMR-Ei...TTL-Pulsen
diesmal keine im MAX definierten Tasks und Tasknamen. Das hyperglobal.vi mit den ganzen IMHO unnötigen globalen Variablen fehlt leider immer noch.
Aber zurück zum Sourcecode und Timing. Wenn ich richtig sehe und mich auch in deinen letzten Thread schaue und wenn alle Controls im Frontpanel "Default-Einstellungen" anzeigen, dann würdest du gerne:
- Zur selben Zeit die 4 Tasks AO, AI und 2x Counter starten.
- Die Tasks sind so "programmiert", dass die beiden Counter die benötigten digitalen Pulse im korrekten Versatz ausgeben (sollen).
- Während Counter 0 HIGH ist, wird über AO der RF-Puls ausgegeben.
- Um die beiden Counter-Tasks und den AO Task zur selben Zeit zu starten, lässt du alle 3 über durch das interne Triggersignal ai/Starttrigger auslösen.
- Den AI-Task triggerst du über die interne 80Mhz Zeitbasis (wieso das?)
Was mit jetzt fehlt, ist ein sicherer zeitlicher Ablauf zwischen den Ausgangstasks (AO und Counter) und dem AI-Task. So wie du es aufgebaut hast, kann es meiner Meinung nach durchaus passieren, dass der AI-Task schon gestartet ist, bevor die 3 anderen Tasks das "Start-Task" beendet haben und somit auf den physikalischen Starttrigger warten.
Das lässt sich aber relativ einfach durch sinnvolle Verwendung des Errorclusters erreichen:
Gruß, Jens
P.S.: Das rot eingekreiste VI ist ein Merge-Error in der LV-2010-Version, das wirst du in dieser Darstellung in deiner 7.1er Variante nicht finden.