adlink 讀取5v_ADLink ACL-8112系列例程

这篇博客介绍了如何使用C语言编写读取ADLink ACL-8112系列硬件的示例程序,包括设置基地址、采样率、增益等参数,并展示了处理数字输入和模拟输出的代码片段。
摘要由CSDN通过智能技术生成

#include "windows.h"

#include

#include

#include

#include

#include

#include "resource.h"

#include "dll2.h"

#define IDM_EXIT        110  //定义菜单、对话框控件等

#define IDC_ADDR        200

#define IDC_AD1         201

#define IDC_AD2         202

#define IDC_AD3         203

#define IDC_AD4         204

#define IDC_AD5         205

#define IDC_AD6         206

#define IDC_SCROLL      207

#define IDC_SPIN        301

#define IDC_START       208

#define IDC_STOP        209

#define IDC_PAUSE       210

#define IDC_EDIT        211

#define IDC_GAIN        212

#define IDC_DA          400

#define IDC_HG          500

#define IDC_DG          501

#define TIMER1            1

#define NONE              0

#define DEMO              1

#define SINE              1

#define SQUARE            2

int PASCAL      WinMain(HANDLE, HANDLE, LPSTR, int); //两个主要函数声明

long  PASCAL MainWndProc(HWND, UINT, WPARAM, LPARAM);

HANDLE  hInst;  //自定义句柄,全局

HWND hAddrComboBox;

HWND hADComboBox1; //窗口句柄

HWND hADComboBox2;

HWND hADComboBox3;

HWND hADComboBox4;

HWND hADComboBox5;

HWND hADComboBox6;

HWND hADScroll;

HWND hEdit;

HWND MainhWnd;

unsigned int input=0, output=0;  //定义输入输出变量

unsigned int oldinput=0,analog_input[16],adinput[16],old_adinput1[16],old_adinput2[16];

unsigned char input_lo=0, input_hi=0;

unsigned int demo_input=0, demo_output;

LPSTR AD_Range[2][12]={  //电压范围

{"+/-5V","+/-0.5V","+/-0.05V","+/-0.005V","0~10V","0~1V","0~0.1V","0~0.01V","+/-10V","+/-1V","+/-0.1V","+/-0.01V"}

,{"+/-10V","+/-5V","+/-2.5V","+/-1.25V","0-10V","0-5V","0-2.5V","0-1.25V"," "," "," "," "}

};

//声明彩色刷子和笔

HBRUSH  hLTGreenBrush,hGreenBrush,hBlueBrush,hYellowBrush,hRedBrush,hBlackBrush,hWhiteBrush

,hLTRedBrush,hLTBlueBrush;

HPEN    hRedPen,hYellowPen,hGreenPen,hBluePen,hLTBluePen,hLTRedPen,hLTGreenPen,hWhitePen;

#define  A8112B_HG  0

int base_addr=NONE,sample_rate=10,time_interval,gain=1;

int Card_Type=A8112B_HG;

int Input_Mode=SINGLE_ENDED;

int DA_wave[6] = {NONE, NONE, NONE, NONE, NONE, NONE};

double angle[6] = {0, 0, 0, 0, 0, 0};

int sq[6] = {0, 0, 0, 0, 0, 0};

//定义输入输出坐标点

POINT input_pos[16]= { {470, 280},  {440, 280},

{410, 280},  {380, 280},

{350, 280},  {320, 280},

{ 290, 280},  {260, 280},

{230, 280},  {200, 280},

{170, 280},  {140, 280},

{110, 280},  {80, 280},

{ 50, 280},  { 20, 280},

};

POINT output_pos[16] ={

{470, 340},  {440, 340},

{410, 340},  {380, 340},

{350, 340},  {320, 340},

{ 290, 340},  {260, 340},

{230, 340},  {200, 340},

{170, 340},  {140, 340},

{110, 340},  {80, 340},

{ 50, 340},  { 20, 340},

};

POINT io_pos[16] ={

{395, 40},  {370, 40},

{345, 40},  {320, 40},

{295, 40},  {270, 40},

{ 245, 40},  {220, 40},

{195, 40},  {170, 40},

{145, 40},  {120, 40},

{95, 40},  {70, 40},

{ 45, 40},  { 20, 40},

};

//布尔变量选择框、按钮

BOOL bCheck1[8],bCheck2[8],bStart=FALSE,bStop=FALSE,bPause=FALSE;

BOOL InitApplication(HANDLE);//函数声明

BOOL InitInstance(HANDLE, int);

int PASCAL WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)

HANDLE hInstance, hPrevInstance;

LPSTR lpCmdLine;

int nCmdShow;

{

MSG msg;

if (!hPrevInstance)

if (!InitApplication(hInstance))  return(FALSE);//初始化应用程序

if (!InitInstance(hInstance, nCmdShow)) return(FALSE);//初始化实例

while (GetMessage(&msg, NULL, NULL, NULL)) { //进入消息循环

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return(msg.wParam);

}

BOOL InitApplication(hInstance)

HANDLE hInstance;

{

WNDCLASS wc;

/* Main Window Class */

wc.style = NULL;

wc.lpfnWndProc = (WNDPROC)MainWndProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInstance;

wc.hIcon = LoadIcon(hInstance, "MyIcon");

wc.hCursor = LoadCursor(NULL, IDC_ARROW);

wc.hbrBackground = GetStockObject(LTGRAY_BRUSH);

wc.lpszMenuName = NULL;

wc.lpszClassName = "GenericWClass";

if (!RegisterClass(&wc)) return(FALSE);

}

BOOL InitInstance(hInstance, nCmdShow)

HANDLE hInstance;

int nCmdShow;

{

HWND hWnd;

HMENU hSampleMenu;

hInst = hInstance;//赋值给全局变量,实例句柄

hSampleMenu = LoadMenu(hInstance, "U7120Menu");

hWnd = CreateWindow("GenericWClass",

(LPCSTR)"8112",

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

530,

480,

NULL,

hSampleMenu,

hInstance,

NULL);

MainhWnd=hWnd; //赋值给全局变量,窗口句柄

if (!hWnd) return(FALSE);

ShowWindow(hWnd, nCmdShow);

UpdateWindow(hWnd);

return(TRUE);

}

//Setup菜单对话框

BOOL PASCAL setup(HWND hWnd, unsigned message, WPARAM wParam, LPARAM lParam)

{

int i,k;

char n[16];

switch (message) { //处理消息

case WM_INITDIALOG: //初始化对话框时

SendMessage(GetDlgItem(hWnd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值