4.3DEMO2
/* demo 2 : DI/O demo of CON1, CON2 & CON3 | */ | ||
/* step 1 : connect | */ | ||
/* | : connect CON1 t0 CON2 of | */ | |
/* 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() |
|
| |
{ | 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; |
|
| |
clrscr(); |
|
| |
/* step1 : find | */ | ||
| . |
|
|
| . |
| */ |
/* step2 : enable all D/I/O port | /* /RESET | ||
outportb(wBase,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();
}