Mio,
I'm sorry to say that I had the same problem as well and it is not solvable! When
ever you change the waveform output of these cards, both outputs are restarted. I
tried to run a waveform continousely and to use the other channel as a analog (dc)
output to control a temperature in my system. I had to download both things each time
I changed the temperature....
Maybe other cards would do much better.
Urs B�gli
MIO schrieb:
> I'm using PCI-MIO-16-4.
> Using double buffering mode,I'm generating 2 waveforms and at the
> sametime aquire 2 analogsignals.
>
> There is no ploblem when the outgoing waveform in not changed, but,
> when I changed the outgoing buffer with new one, the first waveform
> afther the change was not generated correctly(only partially). From
> the second waveform after the change the waveform generated
> correctly..
> and I don't understand that when I set the sampling rate to 5 kHz the
> waveform generation works correctly....if I use more faster or slower
> sampling rate it always generates above ploblem.
>
> here is the code that i wrote( i'm using delphi).....
>
> if form3.IPD.value<=0 then begin// ///////////////////////if
> continuous.............
> status:=WFM_DB_config(device,2,@DAchans, 1,0,0);
> Status:=WFM_Group_Setup(device, 2,@DAchans,1);
> status:=Select_signal(Device,
> ND_RTSI_1,ND_IN_CONVERT,ND_HIGH_TO_LOW);
> status:=select_signal(device, ND_out_update, Nd_rtsi_1,
> Nd_high_to_low);
> status:=WFM_Load(device, 2, @DAchans, @DAbufferSbin,
> 2*pulsecount,form3.np.value,0);
> status:=DAQ_rate(rate,0,@timebase,@sampleint);
> status:=daq_DB_config(device,1);
> status:=Scan_setup(device,1,@chans,@gains);
> Status:=WFM_Group_Control(device, 1,1);
> status:=Scan_start(device,@ADbuffer,2*pulsecount,timebase,sampleint,timebase,0);
> loofcount:=0;
> gloofcount:=0;
> try
> if form3.NP.value>0 then
> begin////////////////////////////////////////////NP.value>0
> while (loofcount> if pulseout then begin
> status:=WFM_DB_Halfready(device,2,@DAchans,@halfready);
> if (halfready=1) and (status=0) then begin
> status:=WFM_DB_Transfer(device,2,@DAchans,@DABufferSbin,pulsecount);
> end;
> end;
> Status:=DAQ_DB_HalfReady(Device,@HalfReady,@DAQstopped);
> if (halfready=1) and (status=0) then begin
> status:=daq_DB_transfer(device,@halfADbuffer,@pulsecount,@daqstopped);
> if not pause then begin
> // form1.savebinarydata;
> // status:=scan_Demux(@halfadbuffer,pulse2count,2,0);
> if not drawing then
> form2.draw;
> inc(loofcount);
> inc(gloofcount);
> form3.select1pulse;
> end;
> if (stop=true) or (loofcount>=form3.NP.value)then begin
> Stop:=true;
> assignfile(f,datafilename);
> reset(f);
> try
> seek(f,28);
> tonumofPper1chan4:=((filesize(f)-300) / 2)/numofchans;
> blockwrite(f,tonumofPper1chan4,4);
> finally
> closefile(f);
> end;
> form2.enablecontrol;
> break;
> end; // stop
> end; // halfready
> end; // while
> end