/* ----------------------------------------------------------- */ /* demo 6 : software event down counter */ /* step 1 : CNT1 select ECLK1 (JP22) */ /* step 2 : run demo6.exe */ /* step 3 : connect the external CNT signal to pin1 of CON1 */ /* ----------------------------------------------------------- */ #include "PCITMC12.H" WORD pci_tmc12_select8254(char cChip); WORD pci_tmc12_c0(char cConfig, char cLow, char cHigh); WORD pci_tmc12_c1(char cConfig, char cLow, char cHigh); WORD pci_tmc12_c2(char cConfig, char cLow, char cHigh); WORD wBaseAddr,wIrq,wPLX; float c65536,software_count; int main() { int i,j; WORD wBoards,wRetVal; char c,s0; unsigned int high,low; c65536=0; s0=0; clrscr(); wRetVal=PTMC12_DriverInit(&wBoards); printf("\n(1) Threr are %d PCI-TMC12 Cards in this PC",wBoards); if ( wBoards==0 ) { putch(0x07); putch(0x07); putch(0x07); printf("(1) There are no PCI-TMC12 card in this PC !!!\n"); exit(0); } printf("\n(2) Show the Configuration Space of all PCI-TMC12:"); for(i=0; i 0x80 ) && (s0==1)) { c65536 += 1.0; s0=0; } software_count=c65536*65536.0+(0xff-high)*256+(0xff-low)+2; printf("\nhigh=%x, low=%x, c65536=%f, software_count=%f" ,high,low,c65536,software_count); if (kbhit()!=0) {getch(); break;} } PTMC12_DriverClose(); } /* -------------------------------------------------------------------- */ WORD pci_tmc12_select8254(char cChip) { outportb(wBaseAddr+0x10,cChip); return(NoError); } WORD pci_tmc12_c0(char cConfig, char cLow, char cHigh) { outportb(wBaseAddr+0x0C,cConfig); outportb(wBaseAddr ,cLow); outportb(wBaseAddr ,cHigh); return(NoError); } WORD pci_tmc12_c1(char cConfig, char cLow, char cHigh) { outportb(wBaseAddr+0x0C,cConfig); outportb(wBaseAddr+4 ,cLow); outportb(wBaseAddr+4 ,cHigh); return(NoError); } WORD pci_tmc12_c2(char cConfig, char cLow, char cHigh) { outportb(wBaseAddr+0x0C,cConfig); outportb(wBaseAddr+8 ,cLow); outportb(wBaseAddr+8 ,cHigh); return(NoError); }