📄 sys.cpp
字号:
// 本程序演示了如何进行AD采样的过程
// 假定使用的输入量程:[-5V, +5V]
#include "stdafx.h"
#include "conio.h"
#include "USB2080.h"
char key;
int main(int argc, char* argv[])
{
HANDLE hDevice; // 设备对象句柄
int DeviceLgcID; // 设备号
BOOL bReturnStatus; // 函数的返回值
int ReadSizeWords; // 每次读取AD数据个数
LONG nRetWords; // 实际读取的数据个数
int nChannelCount = 0; // 采样通道数
SHORT ADBuffer[ 32768 ]; // 接收AD 数据的缓冲区
float Volt; // 将AD 数据转换为电压值
USB2080_PARA_AD ADPara; // 初始化AD的参数结构
ReadSizeWords = 8192;
ADPara.ADMode = USB2080_ADMODE_SEQUENCE;//采样模式为连续采集
ADPara.ReadSizeWords = ReadSizeWords;
ADPara.FirstChannel = 0; // 首通道
ADPara.LastChannel = 3; // 末通道
ADPara.Frequency = 100000; // 采样频率(Hz)
ADPara.GroupInterval = 1000; // 分组间隔(uS),只有ADMode = USB2080_ADMODE_GROUP时有效
ADPara.Gains = USB2080_GAINS_1MULT;
ADPara.TriggerMode = USB2080_TRIGMODE_SOFT; // 内触发方式
ADPara.TriggerType = USB2080_TRIGTYPE_EDGE; // 边沿触发类型
ADPara.TriggerDir = USB2080_TRIGDIR_NEGATIVE; // 负向触发
//ReadSizeWords = 4096;
nChannelCount = ADPara.LastChannel - ADPara.FirstChannel + 1; // 采样通道数
USB2080_EnableShowMessage(TRUE);
DeviceLgcID = 0; // 以逻辑设备号创建设备对象
hDevice = USB2080_CreateDevice( DeviceLgcID ); // 创建设备对象
if(hDevice == INVALID_HANDLE_VALUE) { printf("Create Device Error\n"); return 0; }
bReturnStatus = USB2080_InitDeviceAD( hDevice, &ADPara ); // 初始化AD
if ( !bReturnStatus )
{
printf( "USB2080_InitDeviceAD Error\n" );
return 0;
}
while ( !kbhit() )
{
//if(kbhit()) break;
if(!USB2080_ReadDeviceAD(hDevice, ADBuffer, ReadSizeWords, &nRetWords)) // 读取AD转换数据
{
printf("ReadDeviceAD Error...\n");
getch();
goto Exit;
}
if(nRetWords==0){ /*Beep(3000, 1);*/ continue; }
if(nRetWords!=ReadSizeWords)
{
printf("Not...., nRetWords=%d\n", nRetWords);
getch();
}
for ( int i =0; i < 64; i+=4)
{
Volt = ( float ) (((ADBuffer[i]^0x2000)&0x3FFF )* (10000.0 / 16384)-5000.0 ); // 将AD数据转换为电压值
printf( "Index=%3d [CH0]=%6.2f\t", i, Volt );
Volt = ( float ) ((( ADBuffer[i+1]^0x2000)&0x3FFF )* (10000.0 / 16384) -5000.0); // 将AD数据转换为电压值
printf( "[CH1]=%6.2f\t", Volt);
Volt = ( float ) ((( ADBuffer[i+2]^0x2000)&0x3FFF )* (10000.0 / 16384) -5000.0); // 将AD数据转换为电压值
printf( "[CH2]=%6.2f\t", Volt);
Volt = ( float ) ((( ADBuffer[i+3]^0x2000)&0x3FFF )* (10000.0 / 16384) -5000.0); // 将AD数据转换为电压值
printf( "[CH3]=%6.2f\n", Volt);
}
}
Exit:
USB2080_ReleaseDeviceAD( hDevice ); // 释放AD,停止AD数据转换
USB2080_ReleaseDevice( hDevice ); // 释放设备对象
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -