这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 测试测量 » 【应用笔记】应用分析I:使用模拟输入的数字读取

共1条 1/1 1 跳转至

【应用笔记】应用分析I:使用模拟输入的数字读取

高工
2012-05-18 22:41:05     打赏

为了使用3M赫兹的模拟[1]输入来实现数字读取,执行下列步骤:

1. 设置一个有一个条目的信道增益队列;

2. 选择信道0;

3. 将增益码属性设置为CHAN_SEDIFF_DIG(8192)

4. 把接收到的数据按16位板卡[2]上的16位数字值或12位板卡上的12位数字值做处理,而不是按照电压处理。

实现这一过程的代码被列在下面:

' For boards having unique, product-specific attributes

Const CHAN_OEM_SHIFT As Integer = (-2) ^ 15

Const CHAN_OEM_MASK As Integer = (1 * CHAN_OEM_SHIFT)

' use std attribs

Const CHAN_OEM_DEFAULT As Integer = (0 * CHAN_OEM_SHIFT)

' use OEM attribs

Const CHAN_OEM_FLAG As Integer = (1 * CHAN_OEM_SHIFT)

' For boards supporting programmable single-ended vs. differential inputs

Const CHAN_SEDIFF_SHIFT As Integer = 2 ^ 13

Const CHAN_SEDIFF_MASK As Integer = (3 * CHAN_SEDIFF_SHIFT)

' use static config

Const CHAN_SEDIFF_DEFAULT As Integer = (0 * CHAN_SEDIFF_SHIFT)

' digital input chan

Const CHAN_SEDIFF_DIG As Integer = (1 * CHAN_SEDIFF_SHIFT)

. . .

DriverLINXSR1.Sel_chan_N = 1

DriverLINXSR1.Sel_chan_format = DL_tNATIVE

DriverLINXSR1.Sel_chan_list(0) = 0

DriverLINXSR1.Sel_chan_gainCodeList(0) = CHAN_SEDIFF_DIG

这些代码设置服务请求的单个属性。

 第一个属性告诉DriverLINX,在信道增益队列(上面的步骤1)中,只需要一个信道。

 第二个属性(Sel_chan_list)告诉DriverLINX如何将数据存在缓冲区里。DL_tNATIVE表示按照硬件给出的格式存储。

 第三个属性为信道增益队列中的第一项内容选择信道。在这种情况下,这个值必须是0(步骤2);

 第四个属性设置数字读取(步骤3). 在代码的其它地方,这个数字值被逐位处理。

可能引起混乱的是,CHAN_OEM_FLAG被设置为(-2)^15,而不是2^15,这好像有更多的含义。答案在VisualBasic中。VisualBasic的整数总是有符号的,因此位15是符号位,用户取或的值必须是-32768,不是32768(它将会引起溢出错误)。

记住,对一个真正的应用程序来说,用户可能除了数字数据外还想获得模拟数据。这个应用被设计来展示实现模拟输入/数字输入功能的最简单方式,因此它不执行模拟转换[3]。这个例子可以很容易被修改以向列表中增加更多的信道和增益。




关键词: 应用     笔记     分析     使用     模拟     输入     数字     读取    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]