4.3 DEMO2
/* demo 2 : DI/O demo of CON1, CON2 & CON3 */
/* step 1 : connect OME-DB-24P to CON3 of OME-PIO-D56/D24 */
/* : connect CON1 t0 CON2 of OME-PIO-D56 */
/* step 2 : run DEMO2.EXE */
/* step 3 : check the information on screen D/I will same as D/O */
/* : check the result on screen will same as CON3 input */
/* -------------------------------------------------------------- */
#include "PIO.H"
WORD wBase,wIrq;
int main()
{
int i1,i2,i3,j1,j2,j3;
WORD wBoards,wRetVal,t1,t2,t3,t4,t5,t6;
WORD wSubVendor,wSubDevice,wSubAux,wSlotBus,wSlotDevice;
char c;
long i;
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 */
outportb(wBase+0xcc,0x00); /* set CON3 as D/I ports */
i=1;
for (;;)
{
gotoxy(1,7);
i1=i&0xff;
i2=(i>>8)&0xff;
outportb(wBase+0xd0,i1);
outportb(wBase+0xd4,i2);
j1=inportb(wBase+0xd0);
j2=inportb(wBase+0xd4);
printf("\nDO = [%2x,%2x], DI = [%2x,%2x]",i2,i1,j2,j1);
if ((j1!=i1)||(j2!=i2))
{
printf("\n\nError ......");
}
else printf("\nO.K. ......");
j1=inportb(wBase+0xc0);
j2=inportb(wBase+0xc4);
j3=inportb(wBase+0xc8);
printf("\n\nD/I of CON3 [PA, PB, PC] = [%2x,%2x,%2x] ",j1,j2,j3);
i=i<<1;
i=i&0x0ffff;
if (i==0) i=1;
if (kbhit()!=0) return;
}
PIO_DriverClose();
}
OME-
PIO-D56/PIO-D24 User Manual (Ver.2.1, Oct/2003, PPH-005-21) ---- 42