4.3

DEMO2

*/

/* demo 2 : DI/O demo of CN2 - CN3

/* step 1 : connect CN2 t0 CN3 of OME-PIO-D96

 

*/

: run DEMO2.EXE

*/

/* step 2

/* step 3

: check the information on screen D/I will same as D/O

*/

/* -------------------------------------------------------------- */

#include "PIO.H"

WORD wBase,wIrq;

main()

{

i1,i2,i3,j1,j2,j3;

int

WORD

wBoards,wRetVal,t1,t2,t3,t4,t5,t6;

WORD

wSubVendor,wSubDevice,wSubAux,wSlotBus,wSlotDevice;

char

c;

long i=1;

clrscr();

/* step1 : find address-mapping of PIO/PISO cards

*/

.

 

 

.

 

*/

/* step2 : enable all D/I/O port

/*

outportb(wBase,1);

/RESET -> 1 */

/* step3 : configure I/O direction

/* set CN2

*/

outportb(wBase+0xdc,0x07);

as D/O ports */

outportb(wBase+0xec,0x00);

/* set CN3

as D/I ports */

for (;;)

{

gotoxy(1,6);

i1=i&0xff;

i2=(i>>8)&0xff;

i3=(i>>16)&0xff;

outportb(wBase+0xd0,i1);

outportb(wBase+0xd4,i2);

outportb(wBase+0xd8,i3);

j1=inportb(wBase+0xe0);

j2=inportb(wBase+0xe4);

j3=inportb(wBase+0xe8);

printf("\nD/O = [%2x,%2x,%2x] , D/I = [%2x,%2x,%2x] ",i1,i2,i3,j1,j2,j3);

if ((j1!=i1)(j2!=i2)(j3!=i3))

{

printf("\n\nError ......");

}

else printf("\n\nO.K. ......");

i=i<<1;

i=i&0x0ffffff; if (i==0) i=1;

if (kbhit()!=0) return;

}

PIO_DriverClose();

}

OME-PIO-D96 User Manual (Ver.1.1, Mar/2003)

---- 40

Page 42
Image 42
Omega Engineering OME-PIO-D96 manual DEMO2