Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Freeing DMA channels

I am using pattern gen. single buf. input on a 6533 with Win2k and Borland C++ v5. When the program using the board (via NI-DAQ, the latest version) dies badly, it does not seem to free the DMA channel that the board is using. I get the "No DMA channel available for use" error when I run my program again. This means that I have to reboot.

How can I free the DMA channel used by the 6533 without rebooting? I have tried to use DIG_Block_Clear at the start of my program, but it complains that no transfer is in progress.
0 Kudos
Message 1 of 4
(3,531 Views)
Hi, this command has been useful to me in reseting my devices when they get in an unstable state "status = DAQ_Clear (deviceNumber);". It should work at reseting all the resources including the DMA channels. Hope it helps.

Ron
0 Kudos
Message 2 of 4
(3,531 Views)
DAQ_Clear is for DAQ devices, not DIO devices. I get an error -10403 "Device does not support the requested action" when I try this function.

BTW: I mistankenly said I had a 6533; I actually have a PCI-DIO-32HS (they are pretty much the same thing, the 32HS uses PCI instead of PXI).
0 Kudos
Message 3 of 4
(3,531 Views)
You are absolutely right. The command we want to use is Init_DA_Brds. This happens to be the command the the driver uses at startup to reinitialize all the boards. Hope that helps.

Ron
0 Kudos
Message 4 of 4
(3,531 Views)