3.After the A/D conversion is started, the A/D converted data is stored in the FIFO of PCI controller. Each bus mastering data transfer continually tests if any data in the FIFO and then blocks transfer, the system will continuously loop until the conditions are satisfied again but will not exit the block transfer cycle if the block count is not complete . If there is momentarily no A/D data, the
4.This operation proceeds transparently until the PCI controller transfer byte count is complete. All normal PCI bus operation applies here such as a receiver which cannot accept the transfers, higher priority devices requesting the PCI bus, etc. Remember that only one PCI initiator can have bus mastership at any one time. However, review the PCI priority and "fairness" rules. Also study the effects of the Latency Timer. And be aware that the PCI priority strategy (round robin rotated, fixed priority, custom, etc.) is unique to your host PC and is explicitly not defined by the PCI standard. You must determine this priority scheme for your own PC (or replace it).
5.The interrupt request from the PCI controller can be optionally set up to indicate that this longword count is complete although this can also be determined by polling the PCI controller.
uSyntax
Visual C++
int W_9112_AD_DMA_Start (int card_number, int auto_scan, int ad_ch_no, int ad_range, int count, HANDLE memID, int c1, int c2)
Visual Basic
W_9112_AD_DMA_Start (ByVal card_number As Long, ByVal auto_scan As Long, ByVal ad_ch_no As Long, ByVal ad_range As Long, ByVal count As Long, ByVal memID As Long, ByVal c1 As Long, ByVal c2 As Long) As Long
C/C++ ( DOS)
int _9112_AD_DMA_Start (int card_number, int auto_scan, int ad_ch_no, int ad_range, int count , unsigned long *ad_buffer, int c1,int c2)
uArgument
card_number: the card number of
auto_scan: TRUE or FALSE
Example1: auto_scan is FALSE, ad_ch_no is 3. Using DMA mode to read A/D data only channel 3.
Example2: auto_scan is TRUE, ad_ch_no is 3. Using DMA mode to read A/D data with multi