USB7660函数意义.docx
- 文档编号:30568887
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:30
- 大小:22.08KB
USB7660函数意义.docx
《USB7660函数意义.docx》由会员分享,可在线阅读,更多相关《USB7660函数意义.docx(30页珍藏版)》请在冰豆网上搜索。
USB7660函数意义
#ifndefUSB7660_H
#defineUSB7660_H
#ifdefUSB7KCTRANS_EXPORTS
#defineZT_API__declspec(dllexport)
#else
#defineZT_API__declspec(dllimport)
#endif
//定义错误号
#defineZT_SUCCESS0//无错误
#defineERR_PARAMETER11//参数1错
#defineERR_PARAMETER22//参数2错
#defineERR_PARAMETER33//参数3错
#defineERR_PARAMETER44//参数4错
#defineERR_PARAMETER55//参数5错
#defineERR_PARAMETER66//参数6错
#defineERR_PARAMETER77//参数7错
#defineERR_PARAMETER88//参数8错
#defineERR_PARAMETER99//参数9错
#defineERR_PARAMETER1010//参数10错
#defineERR_PARAMETER1111//参数11错
#defineERR_PARAMETER1212//参数12错
#defineERR_PARAMETER1313//参数13错
#defineERR_PARAMETER1414//参数14错
#defineERR_PARAMETER1515//参数15错
#defineERR_PARAMETER1616//参数16错
#defineERR_PARAMETER1717//参数17错
#defineERR_PARAMETER1818//参数18错
#defineERR_PARAMETER1919//参数19错
#defineERR_PARAMETER2020//参数20错
#defineERR_PARAMETER_BASEADDR21//针对ISA卡,板卡基地址超出范围,基地址应该为0x100至0x3F0之间未被系统占用的地址
#defineERR_PARAMETER_CARDNO22//针对PCI卡,板卡索引号超出范围,这版驱动中板卡索引号默认从1开始
#defineERR_PARAMETER_CHMODE23//通道方式参数错误,通道方式超出范围,一般只有0--3共4种方式
#defineERR_PARAMETER_CH24//通道号参数错误,通道号超出范围
#defineERR_PARAMETER_CHIP25//芯片号参数错误,芯片号超出范围
#defineERR_PARAMETER_PORT26//口号参数错误,口号超出范围
#defineERR_PARAMETER_AI_RANGE27//AD量程参数错,此卡不支持这种AD输入量程
#defineERR_PARAMETER_AI_AMP28//AD增益参数错
#defineERR_PARAMETER_AI_STARTMODE29//AD启动方式参数错
#defineERR_PARAMETER_AO_RANGE30//DA量程参数错,此卡不支持这种DA输出量程
#defineERR_PARAMETER_ADFREQ31//AD采集频率(或AD分频系数)参数错
#defineERR_PARAMETER_IRQ32//与中断相关参数错,可能是此卡不支持这种中断方式或中断号
#defineERR_PARAMETER_NULL_POINTER33//空指针错。
原因:
缓冲区首地址为空或者用户传入的参数导致引用到空指针
#defineERR_AD_OVERTIME34//AD超时。
对于ISA卡,出错原因可能是:
未插卡或IO地址与板卡上设置不匹配。
当用定时启动AD或外触发启动AD时,一般不应检查AD是否超时
#defineERR_OPEN_DEVICE35//打开设备失败,对于PCI卡,出错原因可能是:
未插卡或未装驱动,或dll与sys版本不一致
#defineERR_CLOSE_DEVICE36//关闭设备失败
#defineERR_TIMING37//定时未到或外触发脉冲未到
#defineERR_IOADDR_DA_OVERTIME38//带光隔DA写过程超时
#defineERR_OPEN_IRQ39//打开中断出错
#defineERR_FUNC_CANNT_RUN40//此函数不能在这台计算机上运行
#defineERR_ASYNC_FUNC_FAILED41//异步函数调用失败
#defineERR_FUNC_OPERATE42//在当前的卡的设置状态下,不应该调用此函数
#defineERR_EXCHANGE_DATA43//与底层驱动之间交换数据出错
#defineERR_CANT_FIND_FIRST_CH44//无法找到第一个通道的标志位
extern"C"
{
ZT_APIlong_stdcallZT7660_GetCardCount();
//函数功能:
返回当前可使用的设备数量,注意这个函数必须在打开设备之前调用
//
//入口参数:
//返回值:
大于等于0当前可使用设备数量
//-1表失败,已经调用过ZT7660_OpenDevice函数
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_OpenDevice(unsignedlongcardNO);
//函数名称:
ZT7660_OpenDevice
//函数功能:
打开设备。
必须在调用其他函数之前调用。
//放在程序初始化时调用比较恰当,只调用一次即可
//入口参数:
//cardNO:
模块号,默认从1开始
//如果系统中只用了一个USB模块,令这个参数为1就行了
//返回值:
0表成功
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_CloseDevice(unsignedlongcardNO);
//函数名称:
ZT7660_CloseDevice
//函数功能:
关闭指定的设备
//
//入口参数:
//cardNO:
模块号,默认从1开始
//如果系统中只用了一个USB模块,令这个参数为1就行了
//返回值:
0表成功
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIunsignedlong_stdcallZT7660_GetLastErr();
//函数名称:
ZT7660_GetLastErr
//函数功能:
得到当前错误号。
如果错误号为0表示无错误
//返回值:
错误代码,错误代码含义请看宏定义
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIvoid_stdcallZT7660_ClearLastErr();
//函数名称:
ZT7660_ClearLastErr
//函数功能:
清除错误号。
//注意:
一旦产生错误,为了使函数重新正常执行,必须清除错误号
//返回值:
无
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIvoid_stdcallZT7660_SetBaseNO(unsignedlongbaseNO);
//函数名称:
ZT7660_SetBaseNO
//函数功能:
设置板卡索引号(cardNO),芯片号(chipNO),口号(portNO)和通道号(chNO),
//总之带“NO”后缀的参数是从0开始还是从1开始。
默认为从1开始
//建议不要调用这个函数
//入口参数:
//baseNO:
只能设为0或1
//返回值:
无
ZT_APIlong_stdcallZT7660_GetBaseNO();
//函数名称:
ZT7660_GetBaseNO
//函数功能:
返回当前板卡索引号(cardNO),芯片号(chipNO),口号(portNO)和通道号(chNO),
//总之带“NO”后缀的参数是从0开始还是从1开始。
默认为从1开始
//返回值:
返回0表从0开始
//返回1表从1开始
ZT_APIlong_stdcallZT7660_AIonce(unsignedlongcardNO,
unsignedlongchMode,
unsignedlongchNO,
unsignedlongAIrange,
unsignedlongAIAmp,
unsignedlongADstartMode,
unsignedlongADfreq,
unsignedlongABflag,
unsignedlongch1Flag,
unsignedlongADctrlWord,
unsignedlongADoverTime);
//函数名称:
ZT7660_AIonce
//函数功能:
对指定通道进行单次数据采集。
不需要先调用ZT7660_AIinit
//
//入口参数:
//cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//chMode:
通道方式
//0=表示单端,固定单通道方式
//2=表示双端,固定单通道方式
//chNO:
通道号
//当chMode=0时,为通道号(1--48)
//当chMode=2时,为通道号(1--24)
//AIrange:
选择对采集到的AD原码值做何种变换,应该与AD采集量程(一般需跳线)相匹配:
//AIrange=0,表示返回原码值,所有卡都有这种方式。
//对于12位的卡返回0~4095之间的值
//对于16位的卡返回0~65535之间的值
//AIrange=1,表示把原码值转化为0--5000mV之间的值,如果此卡没有这种量程,不应选这种方式
//AIrange=2,表示把原码值转化为0--10000mV之间的值,如果此卡没有这种量程,不应选这种方式
//AIrange=5,表示把原码值转化为-5000--5000mV之间的值,如果此卡没有这种量程,不应选这种方式
//AIAmp:
程控增益系数(0~2)。
//0=1倍增益(无增益);1=10倍增益;2=100倍增益
//ADstartMode:
保留。
保持此参数为0
//ADfreq:
保留。
保持此参数为0
//ABflag:
设置模块为A型(12bit)还是B型(16bit)
//0=A型;1=B型
//ch1Flag:
保留。
保持此参数为0
//ADctrlWord:
一般保持此参数为0。
//若此参数不为0,函数将直接用这个参数的值初始化AD,而对其他影响AD方式的参数,
//例如chMode、AIrange、AIAmp、ABflag、ch1Flag的值不予考虑。
//此参数的说明请参考说明书中对usb7660AI函数的lCode参数的说明。
//ADoverTime:
保留。
保持这个参数为0
//返回值:
不等于-1,表采集到的AD结果
//-1,当ZT7660_GetLastErr返回值等于0时,表AD结果
//当ZT7660_GetLastErr返回值小于0时,表失败
ZT_APIlong_stdcallZT7660_AIinit(unsignedlongcardNO,
unsignedlongchMode,
unsignedlongchNO,
unsignedlongAIrange,
unsignedlongAIAmp,
unsignedlongADstartMode,
unsignedlongADfreq,
unsignedlongABflag,
unsignedlongch1Flag,
unsignedlongADctrlWord,
unsignedlongADoverTime);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//函数名称:
ZT7660_AIinit
//函数功能:
初始化AD
//
//入口参数:
//1.cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//2.chMode:
通道方式
//0=表示单端,固定单通道方式
//1=表示单端,多通道扫描方式
//2=表示双端,固定单通道方式
//3=表示双端,多通道扫描方式
//3.chNO:
通道号或多通道循环输出中止通道号
//当chMode=0时,为通道号(1--48)
//当chMode=1时,为多通道循环采集中止通道号(1--48),例如设为2表示,采集的顺序为:
通道1,通道2,通道1,通道2......
//当chMode=2时,为通道号(1--24)
//当chMode=3时,为多通道循环采集中止通道号(1--24),例如设为2表示,采集的顺序为:
通道1,通道2,通道1,通道2......
//4.AIrange:
选择对采集到的AD原码值做何种变换,应该与AD采集量程(一般需跳线)相匹配:
//AIrange=0,表示返回原码值,所有卡都有这种方式。
//对于12位的卡返回0~4095之间的值
//对于16位的卡返回0~65535之间的值
//AIrange=1,表示把原码值转化为0--5000mV之间的值,如果此卡没有这种量程,不应选这种方式
//AIrange=2,表示把原码值转化为0--10000mV之间的值,如果此卡没有这种量程,不应选这种方式
//AIrange=5,表示把原码值转化为-5000--5000mV之间的值,如果此卡没有这种量程,不应选这种方式
//5.AIAmp:
程控增益系数(0~2)。
//0=1倍增益(无增益);1=10倍增益;2=100倍增益
//6.ADstartMode:
保留。
保持此参数为0
//7.ADfreq:
指定AD总采样频率
//对于USB-7660型,共有0~4档可供选择:
//0=1KHz;1=10KHz;2=25KHz;3=50KHz;4=75KHz
//对于USB-7660A型,共有0~6档可供选择:
//0=1KHz;1=10KHz;2=25KHz;3=50KHz;4=100KHz;5=250KHz;6=500KHz
//对于USB-7660B型,共有0~5档可供选择:
//0=1KHz;1=5KHz;2=10KHz;3=25KHz;4=50KHz;5=100KHz
//注:
这里所设置的是AD总采样频率,如果设置频率为100KHz,
//对于1个通道来说,这个通道的采样频率确实为100KHz;
//对于2个通道来说,每个通道的采样频率变为50KHz;
//对于4个通道来说,每个通道的采样频率变为25KHz;
//注意:
用户可以通过所选的总采样频率与通道数搭配,得到更接近自己需要的采样频率
//8.ABflag:
设置模块为A型(12bit)还是B型(16bit)
//0=A型;1=B型
//9.ch1Flag:
对于B型(16bit)模块,设置是否返回通道1标志
//10.ADctrlWord:
一般保持此参数为0。
//若此参数不为0,函数将直接用这个参数的值初始化AD,而对其他影响AD方式的参数,
//例如chMode、AIAmp、ADstartMode、ADfreq、ABflag、ch1Flag的值不予考虑。
//此参数的说明请参考说明书中对usb7660AIInit函数的lCode参数的说明。
//11.ADoverTime:
保留。
保持这个参数为0
//返回值:
0表成功
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_FifoStatus(unsignedlongcardNO);
//函数名称:
//函数功能:
读取采集模块上硬件缓冲区(FIFO)的状态
//
//入口参数:
//cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//
//返回值:
0表空
//1有数未半满
//3半满未全满
//7全满
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_ADstop(unsignedlongcardNO);
//函数名称:
//函数功能:
停止批量采集。
采集的硬件时钟停止,不再往FIFO里放数
//
//入口参数:
//cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//
//返回值:
0表成功
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_ClearFifo(unsignedlongcardNO);
//函数名称:
//函数功能:
清空模块上硬件缓冲区(FIFO)
//
//入口参数:
//cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//
//返回值:
0表成功
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_GetSFifoDataCnt(unsignedlongcardNO);
//函数名称:
ZT7660_GetSFifoDataCnt
//函数功能:
得到驱动缓冲区中数据个数
//
//入口参数:
//cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//
//返回值:
0表成功
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_AIFifo(unsignedlongcardNO,
unsignedlongpacketBytesSize,
unsignedlongwantReadCount,
short*pResultArr);
//函数名称:
//函数功能:
成批读取AD数据。
//注意:
在调用这个函数之前,应该确保已经调用过ZT7660_AIinit函数进行了正确的初始化
//这个函数已被ZT7660_AIFifoEx取代,在此处只处于兼容目的提供此函数。
//入口参数:
//cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//packetBytesSize:
包的大小(字节尺寸),必须是512的倍数
//wantReadCount:
用户希望读出的数据个数,必须是通道的整数倍,且不能超过用户缓冲区的实际大小
//pResultArr:
用户必须申请一个至少含有wantReadCount个short型元素的缓冲区,
//用于存放采集结果,而pResultArr是这个缓冲区的首地址。
//
//返回值:
大于等于0表缓冲区中读到的有效数据的个数
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_AIFifoEx(unsignedlongcardNO,
unsignedlongwantReadCount,
short*pResultArr);
//函数功能:
成批读取AD数据。
//注意:
在调用这个函数之前,应该确保已经调用过ZT7660_AIinit函数进行了正确的初始化
//并且这个函数不能够和ZT7660_AIFifoCode同时使用,也就是在调用ZT7660_AIinit后,
//只能固定使用一个函数读取数据。
//入口参数:
//cardNO:
模块号,默认从1开始。
有关这个参数的详细说明,请参考ZT7660_OpenDevice函数
//wantReadCount:
用户希望读出的数据个数,必须是通道的整数倍,且不能超过用户缓冲区的实际大小
//pResultArr:
用户必须申请一个至少含有wantReadCount个short型元素的缓冲区,
//用于存放采集结果,而pResultArr是这个缓冲区的首地址。
//
//返回值:
大于等于0表缓冲区中读到的有效数据的个数
//-1表失败,应该进一步调用ZT7660_GetLastErr判断出错原因
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ZT_APIlong_stdcallZT7660_AIFi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- USB7660 函数 意义
![提示](https://static.bdocx.com/images/bang_tan.gif)