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

📄 pm5002k.h

📁 pm518采集卡驱动源码
💻 H
字号:
#ifndef PM5002K_H
#define PM5002K_H

#ifdef PM5002K_EXPORTS
#define ZT_API _declspec(dllexport)
#else
#define ZT_API _declspec(dllimport)
#define ZT_SUCCESS 0  //无错误
#define ERR_PARAMETER1 1 //参数1错
#define ERR_PARAMETER2 2 //参数2错
#define ERR_PARAMETER3 3 //参数3错
#define ERR_PARAMETER4 4 //参数4错
#define ERR_PARAMETER5 5 //参数5错
#define ERR_PARAMETER6 6 //参数6错
#define ERR_PARAMETER7 7 //参数7错
#define ERR_PARAMETER8 8 //参数8错
#define ERR_PARAMETER9 9 //参数9错
#define ERR_PARAMETER_BASEADDR 10 //板卡基地址超出范围,应该在0x100至0x3F0之间未被系统占用的地址
#define ERR_PARAMETER_CH 11 //通道号参数错误,通道号超出范围,调用GetCountFrom检查当前通道号从0开始还是从1开始
#define ERR_PARAMETER_CHIP 12 //芯片号参数错误,芯片号超出范围,调用GetCountFrom检查当前芯片号从0开始还是从1开始
#define ERR_PARAMETER_PORT 13 //口号参数错误,口号超出范围,调用GetCountFrom检查当前口号从0开始还是从1开始
#define ERR_PARAMETER_AI_RANGE 14 //AD量程参数错,此卡不支持这种AD输入量程
#define ERR_PARAMETER_AO_RANGE 15 //DA量程参数错,此卡不支持这种DA输出量程
#define ERR_AD_OVERTIME 20 //AD超时,出错原因可能是:未插卡或IO地址与板卡上设置不匹配
#define ERR_WINDRV 21  //WINDRV运行不正常,可能未安装WINDRV
#define ERR_TIMING 22 //定时未到或外触发脉冲未到,或6508闸门未关闭
#define ERR_IOADDR_DA_OVERTIME 23 //带光隔DA写过程超时
#define ERR_OPEN_IRQ 24 //打开中断出错
#endif

extern "C"
{
  //打开设备,必须在调用其他函数之前调用。放在程序初始化时调用比较恰当,只调用一次
  ZT_API long _stdcall OpenDevicePM();//返回 0 表示打开设备成功,非0表示失败,但在VB中的Boolean与VC中的BOOL不对应
  ZT_API long _stdcall CloseDevicePM();//关闭设备,在用户程序结束时调用一次
  ZT_API unsigned long _stdcall GetDll_LastErrNO();//得到错误号
  ZT_API void _stdcall ClearDll_LastErrNO();//清除错误号,一旦产生错误,为了使其他函数重新正常运行,必须清除错误号
  ZT_API void _stdcall SetCountFrom(unsigned long nCountFrom);//设置芯片号或通道号从0开始还是从1开始
  ZT_API unsigned long _stdcall GetCountFrom();//返回当前芯片号或通道号从0开始还是从1开始
  ZT_API unsigned char _stdcall ReadB(unsigned long nAddr, unsigned long nOffset);//8位读端口
  ZT_API unsigned short _stdcall ReadW(unsigned long nAddr, unsigned long nOffset);//16位读端口
  ZT_API unsigned long _stdcall ReadD(unsigned long nAddr, unsigned long nOffset);//32位读端口
  ZT_API void _stdcall WriteB(unsigned long nAddr, unsigned long nOffset, unsigned long dataByte);//8位写端口
  ZT_API void _stdcall WriteW(unsigned long nAddr, unsigned long nOffset, unsigned long dataWord);//16位写端口
  ZT_API void _stdcall WriteD(unsigned long nAddr, unsigned long nOffset, unsigned long dataDoubleWord);//32位写端口


//PM5320 相关
  ZT_API long _stdcall ZT5320SetADfreq(unsigned long nAddr, unsigned long ADfreq);
  ZT_API long _stdcall ZT5320GetFIFOstatus(unsigned long nAddr);
  ZT_API long _stdcall ZT5320ClearFIFO(unsigned long nAddr);
  ZT_API long _stdcall ZT5320AIfifo(unsigned long nAddr, unsigned long nChMode, unsigned long nCh, unsigned long AIRange, long *pResultArr, unsigned long nCount, unsigned long ADOverTime);
  ZT_API long _stdcall ZT5320TimerAIfifo(unsigned long nAddr, unsigned long nChMode, unsigned long nCh, unsigned long AIRange, long *pResultArr, unsigned long nCount, unsigned long ADOverTime);
  ZT_API long _stdcall ZT5320AOSingle(unsigned long nAddr, unsigned long nCh, long nValue, unsigned long AORange);
}

#endif

⌨️ 快捷键说明

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