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

📄 sys.cpp

📁 这个是AD采集的程序
💻 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 + -