ADLINK cPCI-7300 User Manual

Page 70

Advertising
background image

62

• C/C++ Libraries

int W_7300_DO_DMA_Start (int card_number, HANDLE memID, U32

count)

Visual Basic (Windows 95)

W_7300_DO_DMA_Start (ByVal card_number As Long, ByVal memID As

Long, ByVal count As Long) As Long

C/C++ (DOS)

int _7300_DO_DMA_Start (int card_number, U32 *buff, U32 count,

int repeat, DMA_DSCR *dma_dscr_ptr)

@ Argument

card_number: The card number of the PCI-7300A card.
memID (Win-95): the memory ID of the allocated system DMA memory.

In Windows 95 environment, before calling
W_7300_DO_DMA_Start, W_7300_Alloc_DMA_Mem must

be called to allocate a DMA memory.
W_7300_Alloc_DMA_Mem will return a memory ID for
identifying the allocated DMA memory, as well as
the linear address of the DMA memory for user to
access the data. So you should write the output
data to this memory before calling
W_7300_DO_DMA_Start.

buff (DOS):

If repeat is set as 0, this is the start address
of the memory buffer to store the DO data. If
repeat is set as 1, this argument is of no use.

** This memory should be double-word alignment

count:

For non-chaining mode, this is the total number

of digital output data in double-words (4-byte).
The value of count can not exceed 2^21 (about 2
million). For chaining mode, please set this
argument as 0. The number of digital output is
determined by the information in DMA descriptor
nodes.

repeat (DOS): 0: Use non-chaining mode DMA transfer. The

digital output data is stored in buff.

1: Use chaining mode DMA transfer. The digital
output data is stored in several buffers. The
information of the buffers is stored in DMA
description nodes. All description nodes are

chained together.

dma_dscr_ptr (DOS):

the pointer to the first DMA

description node. Since the DMA description nodes
are chained together, with giving this pointer,
data in all buffers will be transferred.

@ Return Code

NoError
PCICardNumErr
PCICardNotInit
DMATransferNotAllowed
InvalidDIOCount

BufNotDWordAlign
DMADscrBadAlign

Advertising