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

📄 pci8361b.h

📁 多功能数据采集卡上位机完整代码
💻 H
📖 第 1 页 / 共 3 页
字号:
//         -1  表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因

///////////////////////////////////// IRQ相关函数 /////////////////////////////////////////

ZT_API long _stdcall ZT8361_InitIRQ(unsigned long cardNO, 
                                    unsigned long irqSource);
//函数名称:ZT8361_InitIRQ
//函数功能:设置允许哪些硬件中断及屏蔽哪些硬件中断
//          注意:只有调用过 ZT8361_EnableAD 函数后,所作的改变才会生效
//
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8402A_OpenDevice 函数
//       irqSource:设置可产生哪些硬件中断。一般设为 1 即可
//                    0 = 禁止所有硬件中断
//                    1 = 只允许硬件缓冲区(HFIFO)半满中断
//                    2 = 只允许外触发中断。当外触发信号频率高于1K,建议不要开此中断
//                    3 = 同时允许HFIFO半满中断和外触发中断
//                    4 = 只允许AD转换结束中断。在高速AD情况下,建议不要开此中断
//                    5 = 同时允许HFIFO半满中断和AD转换结束中断
//                    6 = 同时允许外触发中断和AD转换结束中断
//                    7 = 同时允许上述三种中断
//返回值:  0  表示成功
//         -1  表失败,应该进一步调用 ZT8402A_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_OpenIRQ(unsigned long cardNO,
                                     long hEventSFifo,
                                     long hEventHFifoFewData,
                                     long hEventHFifoHalf,
                                     long hEventEI,
                                     long hEventADFinish);
//函数名称:ZT8361_OpenIRQ
//函数功能:打开板卡中断。一共有5种事件:
//            1. SFIFO到达阀值事件,一般只用这个事件就行了
//            2. HFIFO有数但不到半满事件,这个事件只是在AD速率较慢的情况下发生
//            3. HFIFO半满事件
//            4. 外触发中断事件
//            5. AD结束中断事件。每完成AD一次就发一次信号,在高速AD情况下,建议不要允许此事件
//            注意:事件1与事件2,事件3不能同时有效
//                  对于事件3,事件4,事件5,只有在相应的硬件中断被允许时,驱动才有可能发出相应事件
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//       hEventSFifo:是驱动缓冲区(SFIFO)到达阀值事件句柄
//                      由用户建立一个事件,然后把事件句柄传入驱动,当SFIFO到达阀值事件产生后,
//                      驱动会将这个事件设置为有信号状态,从而唤醒用户建立的用来等待的线程。
//                      如果用户不需要用到多线程,请保持这个参数为0
//hEventHFifoFewData:是“HFIFO有数但不到半满”事件句柄
//                      由用户建立一个事件,然后把事件句柄传入驱动,当HFIFO有数但不到半满事件产生后,
//                      驱动会将这个事件设置为有信号状态,从而唤醒用户建立的用来等待的线程。
//                      如果用户不需要用到多线程,请保持这个参数为0
//   hEventHFifoHalf:是“HFIFO半满”事件句柄
//                      由用户建立一个事件,然后把事件句柄传入驱动,当HFIFO产生半满中断后,
//                      驱动会将这个事件设置为有信号状态,从而唤醒用户建立的用来等待的线程。
//                      如果用户不需要用到多线程,请保持这个参数为0
//          hEventEI:是“外触发中断”事件句柄
//                      由用户建立一个事件,然后把事件句柄传入驱动,当外触发中断产生后,
//                      驱动会将这个事件设置为有信号状态,从而唤醒用户建立的用来等待的线程。
//                      如果用户不需要用到多线程,请保持这个参数为0
//    hEventADFinish:是“AD完成中断”事件句柄
//                      由用户建立一个事件,然后把事件句柄传入驱动,当AD完成中断产生后,
//                      驱动会将这个事件设置为有信号状态,从而唤醒用户建立的用来等待的线程。
//                      如果用户不需要用到多线程,请保持这个参数为0
//返回值:  0  表示成功
//         -1  表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_CloseIRQ(unsigned long cardNO);
//函数名称:ZT8361_CloseIRQ
//函数功能:关闭8361AN中断
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值:  0  表成功
//         -1  表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因

///////////////////////////////////// 开关量函数 /////////////////////////////////////////

ZT_API long _stdcall ZT8361_DIBit(unsigned long cardNO, 
                                unsigned long groupNO, 
                                unsigned long chNO);
//函数名称:ZT8361_DIBit
//函数功能:得到指定通道的开关量输入状态
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//            chNO:通道号:1--16
//返回值:
//          0 表示低电平
//          1 表示高电平
//         -1 表示调用出错,应该进一步调用ZT8361_GetLastErr函数查找出错原因
ZT_API long _stdcall ZT8361_DIAll(unsigned long cardNO, unsigned long groupNO);
//函数名称:ZT8361_DIAll
//函数功能:得到所有通道的开关量输入状态
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值:
//             0   表示所有通道的开关量输入状态为低电平
//          0xFFFF 表示所有通道的开关量输入状态为高电平
//            -1   表示调用出错,应该进一步调用ZT8361_GetLastErr函数查找出错原因
ZT_API long _stdcall ZT8361_DOBit(unsigned long cardNO, 
                                unsigned long groupNO, 
                                unsigned long chNO, 
                                unsigned long nState);
//函数名称:ZT8361_DOBit
//函数功能:指定某通道的开关量输出状态
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//            chNO:通道号:1--16
//          nState:指定某通道的开关量输出状态:
//                    nState =    0    ,指定输出低电平
//                    nState = 1(或非0),指定输出高电平
//返回值:  
//           0      表示成功
//          -1      表示失败,应该进一步调用ZT8361_GetLastErr函数查找出错原因
ZT_API long _stdcall ZT8361_DOAll(unsigned long cardNO, 
                                unsigned long groupNO, 
                                unsigned long nStateAll);
//函数名称:ZT8361_DOAll
//函数功能:指定所有通道的开关量输出状态
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//          nStateAll:指定所有通道的开关量输出状态:
//                       nStateAll =   0   ,指定所有通道输出低电平
//                       nStateAll = 0xFFFF,指定所有通道输出高电平
//返回值:   0      表示成功
//          -1      表示失败,应该进一步调用ZT8361_GetLastErr函数查找出错原因

///////////////////////////////////// 计数器函数 /////////////////////////////////////////

ZT_API long _stdcall ZT8361_CTStart(unsigned long cardNO,
                                     unsigned long chNO,
                                     unsigned long CTmode,
                                     unsigned long CTinitVal);
//函数名称:ZT8361_CTStart
//函数功能:设置指定8253/8254芯片的指定通道的工作方式及计数通道初值
//          此时计数器是否开始计数,还取决于 Gate 端的状态,
//          注意:从硬件的角度来说,只有当计数脉冲到来时,计数器初值才会被装入
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//            chNO:通道号:1--3
//          CTMode:通道工作方式:0-5(工作方式只从0开始)
//       CTinitVal:计数通道的初值(0--65535)
//函数返回值:  0        成功
//             -1        失败,应该进一步调用ZT8361_GetLastErr函数查找出错原因
ZT_API long _stdcall ZT8361_CTRead(unsigned long cardNO,
                                    unsigned long chNO,
                                    unsigned long lockBeforeRead);
//函数名称:ZT8361_CTRead
//函数功能:读取指定8253/8254芯片的指定计数通道的当前值(减法计数器)
//          此函数不影响计数器的继续计数
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//            chNO:通道号:1--3
//  lockBeforeRead:是否先封锁计数器再读值(一般不用封锁):
//                            0 = 不用先封锁再读
//                            1 = 要先封锁再读
//函数返回值:  返回计数器当前值
//              若返回 -1 表示函数调用失败,应该进一步调用ZT8361_GetLastErr函数查找出错原因
ZT_API long _stdcall ZT8361_CTStop(unsigned long cardNO,
                                    unsigned long chNO,
                                    unsigned long CTMode);
//函数名称:ZT8361_CTStop
//函数功能:停止指定8253/8254芯片的指定通道工作
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//            chNO: 通道号:1--3
//          CTMode:保留。设为0即可
//
//返回值:  0  成功
//         -1  失败,应该进一步调用 ZT8361_GetLastErr 函数查找出错原因


///////////////////////////////////// 必备底层函数 /////////////////////////////////////////
ZT_API void _stdcall ZT8361_SetBaseNO(unsigned long baseNO);
//函数名称:ZT8361_SetBaseNO
//函数功能:设置板卡索引号(cardNO),芯片号(chipNO),口号(portNO)和通道号(chNO),
//          总之带“NO”后缀的参数是从0开始还是从1开始。默认为从1开始
//          建议不要调用这个函数
//入口参数:
//          baseNO:只能设为0或1
//返回值:无
ZT_API long _stdcall ZT8361_GetBaseNO();
//函数名称:ZT8361_GetBaseNO
//函数功能:返回当前板卡索引号(cardNO),芯片号(chipNO),口号(portNO)和通道号(chNO),
//          总之带“NO”后缀的参数是从0开始还是从1开始。默认为从1开始
//返回值:返回0  表从0开始
//        返回1  表从1开始
ZT_API long _stdcall ZT8361_ReadW(unsigned long cardNO,
                                unsigned long nOffset);
//函数名称:ZT8361_ReadW
//函数功能:以IO方式,对板卡寄存器进行16位读
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//         nOffset:偏移地址,在硬件说明书上可以查到
//返回值:  返回大于等于0的数,表读出的具体值
//          -1  表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_WriteW(unsigned long cardNO,
                                   unsigned long nOffset,
                                   unsigned long dataWord);
//函数名称:ZT8361_WriteW
//函数功能:以IO方式,对板卡寄存器进行16位写
//入口参数:
//          cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//         nOffset:偏移地址,在硬件说明书上可以查到
//        dataWord:要写入寄存的值
//返回值:  0  表成功
//         -1  表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因

}
#endif

⌨️ 快捷键说明

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