/* DEMO8 : A/D Output without calibration */ /* step1 : Run DEMO8.EXE */ /* -------------------------------------------------------------- */ #include "PIO.H" void pio_da16_da(int cChannel_no,int iVal); WORD wBase,wIrq; int main() { int i,j,k,MaxChannel=0; WORD wBoards,wRetVal,t1,t2,t3,t4,t5,t6; WORD wSubVendor,wSubDevice,wSubAux,wSlotBus,wSlotDevice; char c; clrscr(); /* step1 : find address-mapping of PIO/PISO cards */ wRetVal=PIO_DriverInit(&wBoards,0x80,0x04,0x00);/*for PIO-DA16/8/4*/ printf("\n(1) Threr are %d PIO-DA16/8/4 Cards in this PC",wBoards); if ( wBoards==0 ) exit(0); printf("\n\n-------------- The Configuration Space --------------"); for(i=0;i "); ShowPioPiso(wSubVendor,wSubDevice,wSubAux); } PIO_GetConfigAddressSpace(0,&wBase,&wIrq,&t1,&t2,&t3,&t4,&t5); /* select card_0 */ /* step2 : enable all D/I/O port */ outportb(wBase,0x11); /* /RESET -> 1 */ printf("\n\n(2) A/D Output without calibration test\n"); printf("\n<1> PIO-DA16"); printf("\n<2> PIO-DA8"); printf("\n<3> PIO-DA4\n\n"); do { printf("\rSelect (1-3): \b"); c=getche(); switch(c) { case '1': MaxChannel=16; break; case '2': MaxChannel=8; break; case '3': MaxChannel=4; break; default : MaxChannel=0; } } while(MaxChannel==0); printf("\n\n (a) 1.23V Voltage output to each channel"); for (i=0; i>8)); outportb(wBase+0xe0+4*(iChannel_no/4),0xff); }