В настоящее время работает с 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)
с указанием документации:
"Направление цифровых портов жесткое. 8 линий (USB-AD14f) Первый порт (DIO1) настроен на ввод, 8 (USB-AD14f) линий второго порта (DIO2) на вывод ".
В файле .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);
Я подключил насос / клапан к 1-му / 2-му порту. Запуск / Остановка насоса работает нормально с:
int32_t start = ad_discrete_out(adh, DIO2, 0, 1);
int32_t stop = ad_discrete_out(adh, DIO2, 0, 0);
Все же я не могу заставить работать другие 7 выходных портов, что, очевидно, должно быть сделано с помощью битовой маски. Буду признателен за любые советы!