01-18-2013 04:20 AM
Hello all,
I have an application in C that needs to play 3 wavefiles simultaneously on 3 NI PCI-6733 cards.
I am implementing this on:
OpenSUSE 8.2
NI-DAQmx 8.0.1
Following the samples from the SDK.
For various applications, I need to provide a choice to play:
- externally triggered via PFI1 on all 3 cards, or play immediately
- externally synchronized via PFI0 on all 3 cards, or play using internal clock
What I find out is that:
- internal clock with no triggering works
- external synchronization with no triggering works (a TTL clock signal on PFI0). The signal plays normally if I connect the external clock signal, and playback hangs if I do not connect it. This is expected.
- external triggering does not work (a TTL triggr signal on PFI1). The signal playback hangs, whatever signal I put to PFI1, even if I connect the clock signal to PFI1 instead of PFI0.
The code that I use:
if (extTrig)
{
res = DAQmxCfgDigEdgeStartTrig(analogTasks[card],
DAQ_EXTERNALSAMPLETRIGGER,
extTrigRising ? DAQmx_Val_Rising : DAQmx_Val_Falling);
Check("Set External Trigger Analog", res);
}
where:
extTrig = TRUE
extTrigRising = FALSE
DAQ_EXTERNALSAMPLETRIGGER = "PFI1"
Check() is a function that prints an error message from DAQmxGetErrorString if res isn't zero
No error message was printed.
Any ideas?
01-18-2013 01:47 PM
@MartijnSm wrote:
- externally triggered via PFI1 on all 3 cards, or play immediately
What I find out is that:
...
- external triggering does not work (a TTL triggr signal on PFI1). The signal playback hangs, whatever signal I put to PFI1, even if I connect the clock signal to PFI1 instead of PFI0.
Does the playback start on all three and hang later?
You could try triggering just one card and exporting the start trigger (DAQmx_Val_StartTrigger) to PFI2 and have the other two cards trigger off of PFI2
http://zone.ni.com/reference/en-XX/help/370471W-01/daqmxcfunc/daqmxexportsignal/
-gavin