Signal Generators

cancel
Showing results for 
Search instead for 
Did you mean: 

I am having trouble getting my PCI6713 analog output board going. I am using double buffering under Borland Builder 5.

I am having trouble getting my PCI6713 analog output board going. I am following the example set out in WFMdoubleBuf.c in the Borland C++ examples, but if the "old data stop" parameter in WFM_DB_Config() is set to 1, then later when WFM_Group_Control(START) is called, NIDAQ error 10800 - "operation could not complete within the time limit" comes up. If "old data stop" is set to 0 then WFM_Group_Control(START) gives no error but the waveform takes several seconds to get going properly. I am programming one channel using an 8K ciculating buffer and a 4K transfer buffer and my sample rate is 5000sps. Has anybody run into this problem before?
NI Softw
are : Borland C++/Builder 5
NI Hardware : AO device PCI-6713
Driver Version : NIDAQ 6.9.2
Operating System : Windows NT 4.0
0 Kudos
Message 1 of 4
(6,729 Views)
I have discovered the answer to my own problem: Because I am using only one channel of the DAC for output, the channel vector array piChanVect[] must apparently be exactly one cell wide or you get the 10800 NIDAQ Error. Who knew?

Now I need to know why I get an underflowerror from the very first call to WFM_DB_Transfer().
0 Kudos
Message 2 of 4
(6,729 Views)
Greetings,

If you change the sizes of your buffers, does the underflow error disappear? What is the exact error code you are receiving?

One other question, have you changed the example program a great deal? What changes have you made?

Let me know, and we will find the solution.

Thanks.

Spencer S.
0 Kudos
Message 3 of 4
(6,729 Views)
Thanks for responding.

The error # is 10844 and no, the buffer size doesn't make any difference, nor doess the sample rate. I don't think it is a time delay or latency problem because it happens immediatly when the code tries to reload the first half buffer the very first time, (I know because I put a DIO toggle around the code and watched it on a scope). Attached is the code snippet for loading the circular buffer. It is almost like I am not getting this process started correctly or something. One difference I noted between my code and the example code is that the example does a WFM_DB_Transfer() using the same buffer as the circular buffer. Is this significant or is my concept of a "Transfer" all wet? What exactly is the WFM_DB_Transfer() f
unction doing anyway?

Thanks for any help you can give me.
0 Kudos
Message 4 of 4
(6,729 Views)