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

📄 sys.cpp

📁 基于VC的DA数据采集和转换
💻 CPP
字号:
// DA恒定值输出的简单演示程序
// 本程序在可由用户选择0-3通道之输出指定的恒定电压值

#include "stdafx.h"
#include "conio.h"
#include "USB2814.h"
#define ESC 27

int main(int argc, char* argv[])
{
	HANDLE hDevice;  //  设备对象句柄
	int DeviceID;    //  设备号
	BOOL bStatus; // 函数的返回值
	int OutputRange;  // DA输出量程选项值
	char Key;
	float fDAVolt; // DA输出的电压值
	WORD nDAData; // nDALsb, 存放将电压值换算而成的LSB原码值

	DeviceID = 0;
	hDevice = USB2814_CreateDevice(DeviceID); // 创建设备对象
	if(hDevice == INVALID_HANDLE_VALUE) 
	{
		printf("Create Device Error...\n");
		getch();
		return 0;
	}

	printf("0. 0V    ~ 5V\n");
	printf("1. 0V    ~ 10V\n");
	printf("2. -5V   ~ +5V\n");
	printf("3. -10V  ~  +10V\n");
	printf("Please Select Output Range[0-3]:");
	scanf("%d", &OutputRange); // 要求用户从键盘上输入DA量程选项
Repeat:
	printf("Please Input DA Volt[mV]:");
	scanf("%f", &fDAVolt); // 要求用户从键盘上输入DA的电压值
	switch(OutputRange)
	{
	case USB2814_OUTPUT_0_P5000mV: // 0~5V
		nDAData = (WORD)(fDAVolt / (5000.00/65536)); // 将DA电压值转换为原码值
		break;
	case USB2814_OUTPUT_0_P10000mV: // 0~10V
		nDAData = (WORD)(fDAVolt / (10000.00/65536)); // 将DA电压值转换为原码值
		break;
	case USB2814_OUTPUT_N5000_P5000mV: // ±5V
		nDAData = (WORD)(fDAVolt / (10000.00/65536) + 32767); // 将DA电压值转换为原码值
		break;	
	case USB2814_OUTPUT_N10000_P10000mV: // ±10V
		nDAData = (WORD)(fDAVolt / (20000.00/65536) + 32767); // 将DA电压值转换为原码值
		break;
	}

	bStatus = USB2814_WriteDeviceDA(hDevice, nDAData); //输出恒定电压
	if(bStatus)
	{
		printf("DA Output is OK, nDAData=%d\n", nDAData);
	}
	else
		printf("USB2814_WriteDeviceDA is Error...\n");
	printf("Press ESC to quit, other key to continue...\n");
	Key = getch(); // 探测用户敲键动作,并取得按键值
	if(Key != ESC) goto Repeat;
	USB2814_ReleaseDevice( hDevice );   // 释放设备对象	
	return 0;
}

⌨️ 快捷键说明

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