3.1.2PIO_GetConfigAddressSpace
PIO_GetConfigAddressSpace(wBoardNo,*wBase,*wIrq, *wSubVendor, *wSubDevice,*wSubAux,*wSlotBus, *wSlotDevice)
•wBoardNo=0 to N Æ totally N+1 boards found by PIO_DriveInit(….)
• | wBase | Æ base address of the board control word |
• | wIrq | Æ allocated IRQ channel number of this board |
•wSubVendor Æ subVendor ID of this board
• | wSubDevice | Æ subDevice ID of this board |
• | wSubAux | Æ subAux ID of this board |
• | wSlotBus | Æ hardware slot ID1 of this board |
• | wSlotDevice | Æ hardware slot ID2 of this board |
The user can use this function to save resources of all
The sample program source is given as follows:
/* step1: detect all
wSubVendor=0x80; wSubDevice=1; wSubAux=0x10; /* for PIO_D96 */
wRetVal=PIO_DriverInit(&wBoards, wSubVendor,wSubDevice,wSubAux); printf("Threr are %d
/* step2: save resource of all |
| |
for (i=0; i<wBoards; i++) |
|
|
{ |
|
|
PIO_GetConfigAddressSpace(i,&wBase,&wIrq,&t1,&t2,&t3,&t4,&t5); |
| |
printf("\nCard_%d: wBase=%x, wIrq=%x", i,wBase,wIrq); |
| |
wConfigSpace[i][0]=wBaseAddress; /* save all resource of this card | */ | |
wConfigSpace[i][1]=wIrq; | /* save all resource of this card | */ |
} |
|
|
/* step3: control the |
| |
wBase=wConfigSpace[0][0];/* get base address the card_0 | */ | |
outport(wBase,1); | /* enable all D/I/O operation of card_0 | */ |
wBase=wConfigSpace[1][0];/* get base address the card_1 | */ | |
outport(wBase,1); | /* enable all D/I/O operation of card_1 | */ |