⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pm5320.h

📁 pm518采集卡驱动源码
💻 H
📖 第 1 页 / 共 2 页
字号:
//                  AIRange = 0,表示返回原码(0-65535),所有卡都有这种方式
//                  AIRange = 1,表示把原码值转化为 0 -- 5000mV 之间的值,如果此卡没有这种量程,不应选这种方式
//                  AIRange = 2,表示把原码值转化为 0 -- 10000mV 之间的值,如果此卡没有这种量程,不应选这种方式
//                  AIRange = 5,表示把原码值转化为 -5000 -- 5000mV 之间的值,如果此卡没有这种量程,不应选这种方式
//         pResultArr:是一个含有至少 nCount 个long型元素的缓冲区的首地址
//         nCount: 需要采集的次数,必须>0,并且不应超出缓冲区的长度
//         ADOverTime:设置超时时间,防止地址不对时死机,是一个毫秒数
//                     若 ADOverTime = 0 表不检查AD超时
//返回值:返回 nCount 次采样的平均值
//        若返回 -1 应该进一步调用 GetDll_LastErrNO 判断是否出错

  /////////////////////PM518 DA相关函数/////////////////////////////////////////////////
  ZT_API long _stdcall ZT_PM518_AOSingle(unsigned long nAddr,unsigned long nCh,long nValue,unsigned long AORange);
  //函数功能:指定通道模拟量输出
//入口函数:
//         nAddr  :板卡基地址
//         nCh    :通道号1-8(通道号默认从1开始)
//         nValue :要输出的值,例如当AORange = 1时,nValue=3000表示输入3V
//         AORange:
//              AORange = 0,表示返回原码(0-4095)
//              AORange = 1,表示把原码值转化为 0 -- 5000mV 之间的值,如果此卡没有这种量程,不应选这种方式
//返回值:0表成功,-1表失败,函数调用失败时应进一步调用 GetDll_LastErrNO 判断出错原因

  ///////////////////DIO///////////////////////////////
  ZT_API long _stdcall ZT_PM518_SetIOMode(unsigned long nAddr,unsigned long nGroup,unsigned long nIOMode);
//函数功能:设置某一组开关量的输入输出模式
//入口参数:nAddr      板卡基地址
//          nGroup     组号(1-3)共3组
//          nIOMode    设置IO方式,0 = 输入方式,1 = 输出方式
//函数返回值:
//             0 表示成功
//            -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因

  ZT_API long _stdcall ZT_PM518_DIAll(unsigned long nAddr,unsigned long nGroup,unsigned long IOModeCheck);
//函数功能:得到某组中所有通道的开关量输入状态,注意每8个通道为一组
//入口参数:nAddr      板卡基地址
//          nGroup     组号(1-3)每8个通道为一组,共3组
//       IOModeCheck   设置是否检查IO工作方式与当前的操作相抵触
//                     0 = 不检查,1 = 检查
//函数返回值:
//                0 表示这组的8个通道输入全为低电平
//             0xFF 表示这组的8个通道输入全为高电平
//            -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因

  ZT_API long _stdcall ZT_PM518_DOAll(unsigned long nAddr,unsigned long nGroup,unsigned long nStateAll,unsigned long IOModeCheck);
//函数功能:设定某组的所有通道的开关量输出状态,每8个通道为一组
//入口参数:nAddr      板卡基地址
//          nGroup     组号(1-3)每8个通道为一组,共3组
//        nStateAll    指定某组中的所有通道的开关量输出状态
//                     例如:0 = 所有8个通道输出低电平,
//                        0xFF = 所有8个通道输出高电平
//       IOModeCheck   设置是否检查IO工作方式与当前的操作相抵触
//                     0 = 不检查,1 = 检查
//函数返回值:
//             0 表成功
//            -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因

  ZT_API long _stdcall ZT_PM518_DOBit(unsigned long nAddr,unsigned long nGroup,unsigned long nBit,unsigned long nState,unsigned long IOModeCheck);
//函数功能:设定某组中某个通道的开关量输出状态,每8个通道为一组
//入口参数:nAddr      板卡基地址
//          nGroup     组号(1-3)每8个通道为一组,共3组
//          nBit       指定某组中的第几个通道(1-8),每组8个通道
//          nState     指定通道的开关量输出状态
//                     0 = 低电平,1 = 高电平
//       IOModeCheck   设置是否检查IO工作方式与当前的操作相抵触
//                     0 = 不检查,1 = 检查
//函数返回值:
//             0 表成功
//            -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因

  ZT_API long _stdcall ZT_PM518_DIBit(unsigned long nAddr,unsigned long nGroup,unsigned long nBit,unsigned long IOModeCheck);
//函数功能:得到某组中某个通道的开关量输入状态,每8个通道为一组
//入口参数:nAddr      板卡基地址
//          nGroup     组号(1-3)每8个通道为一组,共3组
//          nBit       指定某组中的第几个通道(1-8),每组8个通道
//       IOModeCheck   设置是否检查IO工作方式与当前的操作相抵触
//                     0 = 不检查,1 = 检查
//函数返回值:
//             0 表示低电平
//             1 表示高电平
//            -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因

//	ZT_API long _stdcall ZT_PM518_SetIOModeAll(unsigned long nAddr,unsigned long nIOMode);
//函数功能:设置所有组开关量的输入输出模式
//入口参数:nAddr      板卡基地址
//          nIOMode    设置IO方式,0 = 输入方式,1 = 输出方式
//						bit0,bit1,bit2分别对应第1,2,3组
//	例子:如果想将第1组设为输出,第2组设为输入,第3组设为输出的话,nIOMode应设额定为0x101
//函数返回值:
//             0 表示成功
//            -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因

 //////////////////////////////////化物所518中断采集函数////////////////////////////////////////
//	中断次数的计算方法:在100k采样频率的情况下,中断次数为:
//						((离子门脉频参数-离子门脉宽参数)*离子门脉冲个数)/4096的商
 ZT_API long _stdcall ZT_PM518INTENA(unsigned long nAddr,\
									unsigned short *sfifo,\
									unsigned short *eff);
//函数功能:控制中断功能的打开,关闭,设置软件缓冲区
//入口参数:nAddr      板卡基地址
//          *sfifo     软件缓冲区指针,需要设定成一个足够大的数组,可在中断中采集(4096*中断次数)个数据
//			注意:此数组大小需要大于中断次数*4096,否则会丢失数据
//          *eff       软件缓冲区指针,采集不到半满的fifo中的数据,数组设定为4096个即可
//函数返回值:	
//				1 表示中断已开启
//				0 表示中断已关闭
//				-1 表示调用出错
//				-2 中断采集缓冲区未指定(*sfifo)
//				-3 非半满采集缓冲区未指定(*eff)
 ZT_API long _stdcall ZT_PM518INTTIMESET(unsigned long nAddr,\
										unsigned long inttimein);
//函数功能:设定期望的中断次数	
//入口参数:nAddr		板卡基地址
//			inttimein	中断次数写入(计算方法见上面)
//函数返回值:	
//				m_inttime:中断次数期望值

 ZT_API long _stdcall ZT_PM518INTIN(unsigned long nAddr);
//函数功能:返回采集过程中进入的中断次数
//			可在一次采样过程结束后检查实际中断次数是否和期望值相同
//入口参数:nAddr		板卡基地址
//函数返回值:	
//				m_intflag:中断次数

ZT_API long _stdcall ZT_PM518AIinit(unsigned long nAddr,\
									unsigned long nChMode,\
									unsigned long nCh,\
									unsigned long Fre);
//函数功能:AD采样初始化
//入口参数:nAddr		板卡基地址
//			nChMode		0-固定通道采集 1-循环通道采集
//			nCh			固定通道方式此参数为采样通道号(1~32)
//						循环通道方式此参数为截止通道号(1~32)
//			注意:特制驱动多通道循环采样无意义,请不要使用
//			Fre			设定采样频率,采样频率计算:1M/(Fre+1)
//			举例:100k采样频率:Fre=99 (1M/(99+1)=100K)
//
//函数返回值:	
//				0:	调用成功
//				-1:调用失败

ZT_API long _stdcall ZT_PM518READHFIFO(long *pResultArr,\
										unsigned long wCount);
//函数功能:内存方式读取数据
//入口参数:pResultArr	缓冲区首地址指针
//			wCount		读取数据的字节数
//			注意:518是16位采集卡,所以期望读回的数据要是wCount的2倍,而且必须是4096的倍数
//函数返回值:	无

ZT_API long _stdcall ZT_PM518TIMEENDS(unsigned long nAddr);
//函数功能:返回采样经历时间,单位:秒

ZT_API long _stdcall ZT_PM518TIMEENDMS(unsigned long nAddr);
//函数功能:返回采样经历时间,单位:豪秒
ZT_API long _stdcall ZT_PM518INTHANDLE(unsigned long nAddr, HWND hWnd);
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -