如何正确使用位掩码以正确使用数字io端口(USB-AD14f)

问题描述 投票:0回答:1

当前正在使用USB-AD14f(https://www.bmcm.de/external-daq-systems/usb-ad14f.html)。最近,我遇到了一个问题,即我无法使数字IO端口正常工作。通道定义如下:

   #define DIO1   (AD_CHA_TYPE_DIGITAL_IO|0x0001)
   #define DIO2   (AD_CHA_TYPE_DIGITAL_IO|0x0002)

及其说明文件:

“数字端口的方向为硬连线。将第一个端口(DIO1)的8条(USB-AD14f)线设置为输入,将第二个端口(DIO2)的8条(USB-AD14f)线设置为输入输出”。

。h文件中的函数sig。看起来像这样:

/* output discrete sample
 *
 * adh    handle returned by ad_open
 * cha    channel type and id
 * range  range number
 * data   sample to output
 *
 * returns 0 on success, otherwise error code
 */
int32_t
ad_discrete_out (int32_t adh, int32_t cha, int32_t range, uint32_t data);

我已将泵/阀连接到第一/第二端口。启动/停止泵可以通过以下方式正常工作:

int32_t start = ad_discrete_out(adh, DIO2, 0, 1);
int32_t stop = ad_discrete_out(adh, DIO2, 0, 0);

但是我无法使其他7个输出端口正常工作,这显然应该使用位掩码来完成。不胜感激!

c++ c io bitmask
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.