开始多缓冲区模式的采集StartIntr

VC/C++Builder下定义原型:
DWORD __stdcall StartIntr(WORD NumBuf, DWORD NumSamp,\
WORD BegChn, WORD NumChn, \
DWORD FrqSamp, DWORD FrqFilter,\
WORD AmpGain);

VC/C++Builder下使用示例:
I = StartIntr(NumBuf,NumSamp,BegChn,NumChn, FrqSamp, FrqFilter,AmpGain);

VB下定义方式:
Declare Function DllStartIntr Lib "ADCard.Dll" Alias "_StartIntr@28" (ByVal NumBuf As Integer, ByVal NumSamp As Long, ByVal BegChn As Integer, ByVal NumChn As Integer, ByVal FrqSamp As Long, ByVal FrqFilter As Long, ByVal AmpGain As Integer) As Long

VB下使用示例:
I = DllStartIntr(NumBuf, NumSamp, BegChn, NumChn, FrqSamp, FrqSamp, AmpGain)

Delphi下定义方式
function StartIntr(NumBuf:word; NumSamp:Longword;
BegChn:word; NumChn:word;
FrqSamp:Longword; FrqFilter:Longword;
AmpGain:word):Longword; stdcall; external 'adcard.dll' name '_StartIntr@28';

Delphi下使用示例
I := StartIntr(NumBuf, NumSamp, BegChn, NumChn, FrqSamp, FrqFilter,AmpGain);

功能及参数说明:

本函数启动多缓冲区工作方式。成功时返回每缓冲区的大小(字节数),之后,用ADResult()或ADResultRecent()函数取采集结果时用到的缓冲区大小应大于或等于此值(字节数)。失败时返回0。

此函数应在Initial成功调用之后使用。此函数成功后可以使用ADResult()、ADResultRecent()、QueryBuf()等函数,并用StopIntr()函数结束多缓冲区采集方式。
参数NumBuf指定驱动程序内部使用的缓冲区的块数(相当于块FIFO的容留),一般5~10即可,若用户程序取数可能不及时,可加大此值,以防丢失采集数据。

参数NumSamp指定缓冲区块的大小,即每通道的采集点数。此值也规定以后ADResult()或ADResultRecent()使用的数据缓冲区的大小,即每块NumChn个通道、每通道NumSamp个采样点,每采集点为一无符号短整数。为保证驱动程序的性能(点采集、块处理方式),不同的采集板的驱动程序会规定NumSamp的最小值。

参数BegChn表示采集的开始通道。对不同的采集板此值的含义可能不同。在有些采集板中,BegChn无任何意义。在有些采集板中,BegChn表示仅采集1通道时此通道所在的位置。在有些采集板中,BegChn表示在NumChn个通道中,前BegChn个通道是真正的模拟量,以后的通道是开关量通道的组合。具体定义参见采集卡的硬件说明书。

参数NumChn表示采集的总通道数。此数的范围应工具相应采集卡的硬件说明书进行设置。

整型参数FrqSamp表示采集的名义频率。由于可能是多通道采集,有些采集卡还通过多路开关由多通道共享1个AD芯片,或通过一分频器由固定晶振分频得到,因此,每通道的数据采样频率可能不同于名义采样频率。每通道的实际采样频率可通过函数ChannelFrq()以浮点数方式返回精确值。

参数FrqFilter指定电路的低通滤波器的截止频率。在有些采集卡上此值无意义。

参数AmpGain指定板上程控放大器的放大倍数。具体含义请参照使用的采集卡的硬件说明书。