?? sys.cpp
字號(hào):
// 本程序演示了如何進(jìn)行AD采樣的過(guò)程
// 假定使用的輸入量程:[-5V, +5V]
#include "stdafx.h"
#include "conio.h"
#include "USB2080.h"
char key;
int main(int argc, char* argv[])
{
HANDLE hDevice; // 設(shè)備對(duì)象句柄
int DeviceLgcID; // 設(shè)備號(hào)
BOOL bReturnStatus; // 函數(shù)的返回值
int ReadSizeWords; // 每次讀取AD數(shù)據(jù)個(gè)數(shù)
LONG nRetWords; // 實(shí)際讀取的數(shù)據(jù)個(gè)數(shù)
int nChannelCount = 0; // 采樣通道數(shù)
SHORT ADBuffer[ 32768 ]; // 接收AD 數(shù)據(jù)的緩沖區(qū)
float Volt; // 將AD 數(shù)據(jù)轉(zhuǎn)換為電壓值
USB2080_PARA_AD ADPara; // 初始化AD的參數(shù)結(jié)構(gòu)
ReadSizeWords = 8192;
ADPara.ADMode = USB2080_ADMODE_SEQUENCE;//采樣模式為連續(xù)采集
ADPara.ReadSizeWords = ReadSizeWords;
ADPara.FirstChannel = 0; // 首通道
ADPara.LastChannel = 3; // 末通道
ADPara.Frequency = 100000; // 采樣頻率(Hz)
ADPara.GroupInterval = 1000; // 分組間隔(uS),只有ADMode = USB2080_ADMODE_GROUP時(shí)有效
ADPara.Gains = USB2080_GAINS_1MULT;
ADPara.TriggerMode = USB2080_TRIGMODE_SOFT; // 內(nèi)觸發(fā)方式
ADPara.TriggerType = USB2080_TRIGTYPE_EDGE; // 邊沿觸發(fā)類型
ADPara.TriggerDir = USB2080_TRIGDIR_NEGATIVE; // 負(fù)向觸發(fā)
//ReadSizeWords = 4096;
nChannelCount = ADPara.LastChannel - ADPara.FirstChannel + 1; // 采樣通道數(shù)
USB2080_EnableShowMessage(TRUE);
DeviceLgcID = 0; // 以邏輯設(shè)備號(hào)創(chuàng)建設(shè)備對(duì)象
hDevice = USB2080_CreateDevice( DeviceLgcID ); // 創(chuàng)建設(shè)備對(duì)象
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轉(zhuǎn)換數(shù)據(jù)
{
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數(shù)據(jù)轉(zhuǎn)換為電壓值
printf( "Index=%3d [CH0]=%6.2f\t", i, Volt );
Volt = ( float ) ((( ADBuffer[i+1]^0x2000)&0x3FFF )* (10000.0 / 16384) -5000.0); // 將AD數(shù)據(jù)轉(zhuǎn)換為電壓值
printf( "[CH1]=%6.2f\t", Volt);
Volt = ( float ) ((( ADBuffer[i+2]^0x2000)&0x3FFF )* (10000.0 / 16384) -5000.0); // 將AD數(shù)據(jù)轉(zhuǎn)換為電壓值
printf( "[CH2]=%6.2f\t", Volt);
Volt = ( float ) ((( ADBuffer[i+3]^0x2000)&0x3FFF )* (10000.0 / 16384) -5000.0); // 將AD數(shù)據(jù)轉(zhuǎn)換為電壓值
printf( "[CH3]=%6.2f\n", Volt);
}
}
Exit:
USB2080_ReleaseDeviceAD( hDevice ); // 釋放AD,停止AD數(shù)據(jù)轉(zhuǎn)換
USB2080_ReleaseDevice( hDevice ); // 釋放設(shè)備對(duì)象
return 0;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -