标题: 请教PCI9114HG的连续采集问题
play
游客




UID 14
精华 0
积分 4210
帖子 4210
威望 0
金钱 0
阅读权限 1
注册 2007-7-13
状态 离线
发表于 2007-7-13 17:55  资料  短消息  加为好友 

请教PCI9114HG的连续采集问题

我用PCI9114HG采集卡编了一个采集数据、运算和显示的程序。我将采集放在了一个线程里,在采集线程里我又同时创建了运算线程,具体代码如下(Delphi6):  procedure SampleThread.Execute;  begin    datasize:=1024*32;    datasize:=datasize div 2;      while (not Terminated) do    begin      n:=0;      repeat      begin        repeat          AI_AsyncDblBufferHalfReady(card,HalfReady,StopFlag);//判断缓冲区是否半满        until HalfReady=0;        AI_AsyncDblBufferTra fer(card,aiBuffer[0]);//传递数据        for i:=0 to datasize*2-1 do        begin          aiasyn_Buffer:=aiBuffer and 65535;          aidata_Buffer:=aiasyn_Buffer*10/32767.0-10.0;        end;        for i:=0 to 1023 do        begin          for j:=0 to 31 do          begin            SignalDomain[j,i 1024*n]:=aidata_Buffer[j 32*i];          end;        end;        inc(n);      end;      until n=SamplePoint div 1024;      Calculatethread:=CJCalculateThread.Create(false);//创建运算线程并立即执行      Sleep(1000);    end;  end;      这段代码每次运行到Sleep前面的时候,数组里的数据还是有的(不全为0),但是每当回到判断While not Terminated do的时候,数据就莫名其妙地全为0 了,所以导致我的运算线程总是接受不到数据,请问这是什么问题呀,是不是我的函数运用不对呀?或者是采集参数错误了吗?      我的采集参数为:     Number of Scan:1024     Buffer Allocated(KB):256

顶部
[广告]
 


Google

当前时区 GMT+8, 现在时间是 2008-9-7 15:24
粤ICP备07500170号

By Discuz! 5.5.0 © 2007-2008
Processed in 0.091269 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - Autooo! Inc. - Archiver - 繁体中文