/**********************************************************************/ /* This program is developed by Turbo C 2.0 */ /***********************************************************************/ /* Demo 2: Two PCI-1202 Cards Demos. */ /* Basic operation onto PCI-1202 card. */ /* => P1202_Init(), P1202_ActiveBoard(), P1202_Di(), P1202_Do() */ /***********************************************************************/ #define MYLIB #include "P1202.H" int main() { int i,j; WORD wBoards,wRetVal; WORD wDIOdata; float fVal,fAdVals[5]; WORD wAddrTimer,wAddrCtrl,wAddrDio,wAddrAdda; clrscr(); /* initiaing P1202 card and detect how many P1202 card in PC */ wRetVal=P1202_DriverInit(&wBoards); printf("Threr are %d P1202 Cards in this PC\n",wBoards); if( wBoards<=1 ) { putch(0x07); putch(0x07); putch(0x07); printf("Please install two P1202 cards in this PC !!!\n"); exit(0); } /* dump every P1202 card's configuration address space */ printf("The Configuration Space -> Timer Control DIO AD/DA\n"); for(i=0; i 55aaH | Digital Input -> %04xH\n",wDIOdata); wRetVal=P1202_Da(0,0xFFF); /* DA CH:0 output 0xFFF */ if(wRetVal==0) printf("DA CH:0 output 0xFFF.\n"); else { putch(0x07); putch(0x07); putch(0x07); printf("DA CH:0 Error !!!\n"); exit(0); } wRetVal=P1202_Da(1,0xA00); /* DA CH:1 output 0xA00 */ if(wRetVal==0) printf("DA CH:1 output 0xA00.\n"); else { putch(0x07); putch(0x07); putch(0x07); printf("DA CH:1 Error !!!\n"); exit(0); } /* wRetVal=P1202_SetChannelConfig(0,0x00); */ /* +/- 5V range for PCI-1202L */ /* wRetVal+=P1202_DelayUs(3); */ /* 3 us settling time for PCI-1202L */ wRetVal=P1202_SetChannelConfig(0,0x10); /* +/- 5V range for PCI-1202H */ wRetVal+=P1202_DelayUs(23); /* 23 us settling time for PCI-1202H */ wRetVal+=P1202_AdPolling(&fVal); if (wRetVal==0) printf("(5.0V Range) AdPolling CH:0 -> %5.3f\n",fVal); else { putch(0x07); putch(0x07); putch(0x07); printf("(5.0V Range) AdPolling CH:0 Error !!!\n"); exit(0); } /*---------------- CH:1---------------------------*/ /* wRetVal=P1202_SetChannelConfig(1,0x00); */ /* +/- 5V range for PCI-1202L */ /* wRetVal+=P1202_DelayUs(3); */ /* 3 us settling time for PCI-1202L */ wRetVal=P1202_SetChannelConfig(1,0x10); /* +/- 5V range for PCI-1202H */ wRetVal+=P1202_DelayUs(23); /* 23 us settling time for PCI-1202H */ wRetVal+=P1202_AdPolling(&fVal); if (wRetVal==0) printf("(5.0V Range) AdPolling CH:1 -> %5.3f\n",fVal); else { putch(0x07); putch(0x07); putch(0x07); printf("(5.0V Range) AdPolling CH:1 Error !!!\n"); exit(0); } /***********************************************************/ /* Now Active Second P1202 Card. */ /***********************************************************/ printf("--------------------------------------------------\n"); printf("Now Active Second P1202 Card...\n"); P1202_ActiveBoard( 1 ); P1202_Do(0xaa55); /* Digital output */ P1202_Di(&wDIOdata); /* Digital input */ printf("Digital Output -> aa55H | Digital Input -> %04xH\n",wDIOdata); wRetVal=P1202_Da(0,0xFFF); /* DA CH:0 output 0x900 */ if(wRetVal==0) printf("DA CH:0 output 0xFFF.\n"); else { putch(0x07); putch(0x07); putch(0x07); printf("DA CH:0 Error !!!\n"); exit(0); } wRetVal=P1202_Da(1,0xA00); /* DA CH:1 output 0xA00 */ if(wRetVal==0) printf("DA CH:1 output 0xA00.\n"); else { putch(0x07); putch(0x07); putch(0x07); printf("DA CH:1 Error !!!\n"); exit(0); } /* wRetVal=P1202_SetChannelConfig(0,0x00); */ /* +/- 5V range for PCI-1202L */ /* wRetVal+=P1202_DelayUs(3); */ /* 3 us settling time for PCI-1202L */ wRetVal=P1202_SetChannelConfig(0,0x10); /* +/- 5V range for PCI-1202H */ wRetVal+=P1202_DelayUs(23); /* 23 us settling time for PCI-1202H */ wRetVal+=P1202_AdPolling(&fVal); if (wRetVal==0) printf("(5.0V Range) AdPolling CH:0 -> %5.3f\n",fVal); else { putch(0x07); putch(0x07); putch(0x07); printf("(5.0V Range) AdPolling CH:0 Error !!!\n"); exit(0); } /*---------------- CH:1---------------------------*/ /* wRetVal=P1202_SetChannelConfig(1,0x00); */ /* +/- 5V range for PCI-1202L */ /* wRetVal+=P1202_DelayUs(3); */ /* 3 us settling time for PCI-1202L */ wRetVal=P1202_SetChannelConfig(1,0x10); /* +/- 5V range for PCI-1202H */ wRetVal+=P1202_DelayUs(23); /* 23 us settling time for PCI-1202H */ wRetVal+=P1202_AdPolling(&fVal); if (wRetVal==0) printf("(5.0V Range) AdPolling CH:1 -> %5.3f\n",fVal); else { putch(0x07); putch(0x07); putch(0x07); printf("(5.0V Range) AdPolling CH:1 Error !!!\n"); exit(0); } P1202_DriverClose(); return 0; }