Omega Engineering OME-PIO-D96 manual Countl++

Page 46

{

irqmask=inportb(A1_8259+1);

outportb(A1_8259+1,irqmask & 0xfb);/* IRQ2 */ irqmask=inportb(A2_8259+1);

outportb(A2_8259+1,irqmask & 0xff ^ (1<<(wIrq-8))); setvect(wIrq-8+0x70,irq_service);

}

outportb(wBase+5,1);

/* enable interrupt (P2C0) */

now_int_state=1;

/* now ini_signal is high

*/

outportb(wBase+0x2a,0);

/* select the inverte

*/

enable();

 

 

}

 

 

void interrupt irq_service()

 

 

{

/* now P2C0 change to low

*/

if (now_int_state==1)

{

/* INT_CHAN_0 = !P2C0

*/

COUNT_L++;

/* find a low pulse (P2C0)

*/

if ((inportb(wBase+7)&1)==0)

/* P2C0 still fixed in low

*/

{

/* need to generate a high pulse */

outportb(wBase+0x2a,1);

/* INV0 select noninverted input */

now_int_state=0;

/* now P2C0=low

*/

}

/* now P2C0=High

*/

else now_int_state=1;

}

/* now P2C0 change to high

*/

else

{

/* INT_CHAN_0 = P2C0

*/

COUNT_H++;

/* find a high pulse (P2C0)

*/

if ((inportb(wBase+7)&1)==1)

/* P2C0 still fixed in high

*/

{

/* need to generate a high pulse */

outportb(wBase+0x2a,0);

/* INV0 select inverted input

*/

now_int_state=1;

/* now P2C0=high

*/

}

/* now P2C0=low

*/

else now_int_state=0;

}

 

 

if (wIrq>=8) outportb(A2_8259,0x20); outportb(A1_8259,0x20);

}

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

---- 44

Image 46
Contents User’sGuide Benelux CanadaMexico Czech RepublicOME-PIO-D96 Table of Contents Features IntroductionOrder Description SpecificationsOptions Product Check List PCI Data Acquisition FamilyOME-PISO-series cost-effective generation, isolated cards Hardware configuration Board LayoutI/O port Location Enable I/O OperationRefer to DEMO1.C for demo program D/I/O Architecture Interrupt Operation Make sure the initial level is High or LowInterrupt Block Diagram of OME-PIO-D96 INTCHAN3INTCHAN0/1/2/3 Initialhigh, activelow Interrupt source COUNTL++Initiallow, activehigh Interrupt source Muliti Interrupt Source Read all interrupt state OME-DN-37 & OME-DN-50 Daughter BoardsOME-DB-37 OME-DB-8125OME-ADP-37/PCI & OME-ADP-50/PCI OME-DB-24P/24PD Isolated Input Board OME-DB-24R/24RD Relay Board OME-DB-24PR/24POR/24C Daughter Boards Comparison Table All signals are TTL compatible Pin AssignmentVCC GND OME-PIO/PISO identification information How to Find the I/O AddressResource-allocated information PC’s physical slot informationPIODriverInit&wBoards, wSubVendor,wSubDevice,wSubAux PIODriverInitWSubVendor=0x80 wSubDevice=1 wSubAux=0x10 /* for PIOD96 Current sinking Enable all D/I/O operation of card0 PIOGetConfigAddressSpaceEnable all D/I/O operation of card1 ShowPIOPISO ShowPIOPISOwSubVendor,wSubDevice,wSubAuxAssignment of I/O Address Slot5 0x0A Slot6 0x08 Slot7 0x09 Slot8 0x07I/O Address Map Address Read WriteAUX Control Register RESET\ Control RegisterAUX data Register INT Mask Control Register Aux Status RegisterInterrupt Polarity Control Register INV3 INV2 INV1 INV07 I/O Selection Control Register Read/Write 8-bit data Register How to install software & utility? Demo programPiopiso PIOPISO.EXE for Windows DEMO1 DEMO2 DEMO3 COUNTL++ DEMO4 COUNTL++ DEMO5 CNTL1=CNTL2=CNTL3=CNTL4=0 Page WARRANTY/DISCLAIMER Temperature