Omega Engineering OME-PIO-D96 manual Read all interrupt state

Page 17

void interrupt irq_service()

 

 

 

{

 

/* read all interrupt state */

new_int_state=inportb(wBase+7)&0x0f;

int_c=new_int_state^now_int_state;

/* compare which interrupt

*/

if ((int_c&0x1)!=0)

 

/* signal be change

*/

 

/* INT_CHAN_0 is active

*/

{

/* now P2C0 change to high

*/

if ((new_int_state&0x01)!=0)

{

 

 

 

CNT_H1++;

 

 

 

}

/* now P2C0 change to low

*/

else

{

 

 

 

CNT_L1++;

 

 

 

}

/* to generate a high pulse

*/

invert=invert^1;

}

 

 

 

if ((int_c&0x2)!=0)

 

 

 

{

/* now P5C0 change to high

*/

if ((new_int_state&0x02)!=0)

{

 

 

 

CNT_H2++;

 

 

 

}

/* now P5C0 change to low

*/

else

{

 

 

 

CNT_L2++;

 

 

 

{

/* to generate a high pulse

*/

invert=invert^2;

}

 

 

 

if ((int_c&0x4)!=0)

 

 

 

{

/* now P8C0 change to high

*/

If ((new_int_state&0x04)!=0)

{

 

 

 

CNT_H3++;

 

 

 

}

/* now P8C0 change to low

*/

else

{

 

 

 

CNT_L3++;

 

 

 

}

/* to generate a high pulse

*/

invert=invert^4;

}

 

 

 

if ((int_c&0x8)!=0)

 

 

 

{

/* now P11C0 change to high

*/

if ((new_int_state&0x08)!=0)

{

 

 

 

CNT_H4++;

 

 

 

{

/* now P11C0 change to low

*/

else

{

 

 

 

CNT_L4++;

 

 

 

}

/* to generate a high pulse

*/

invert=invert^8;

}

 

 

 

now_int_state=new_int_state;

 

 

 

outportb(wBase+0x2a,invert);

 

 

 

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

}

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

---- 15

Image 17
Contents User’sGuide Mexico CanadaBenelux Czech RepublicOME-PIO-D96 Table of Contents Introduction FeaturesOptions SpecificationsOrder Description OME-PISO-series cost-effective generation, isolated cards PCI Data Acquisition FamilyProduct Check List Board Layout Hardware configurationRefer to DEMO1.C for demo program Enable I/O OperationI/O port Location D/I/O Architecture Make sure the initial level is High or Low Interrupt OperationINTCHAN3 Interrupt Block Diagram of OME-PIO-D96INTCHAN0/1/2/3 COUNTL++ Initialhigh, activelow Interrupt sourceInitiallow, activehigh Interrupt source Muliti Interrupt Source Read all interrupt state OME-DB-37 Daughter BoardsOME-DN-37 & OME-DN-50 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 Pin Assignment All signals are TTL compatibleVCC GND Resource-allocated information How to Find the I/O AddressOME-PIO/PISO identification information PC’s physical slot informationWSubVendor=0x80 wSubDevice=1 wSubAux=0x10 /* for PIOD96 PIODriverInitPIODriverInit&wBoards, wSubVendor,wSubDevice,wSubAux Current sinking Enable all D/I/O operation of card1 PIOGetConfigAddressSpaceEnable all D/I/O operation of card0 ShowPIOPISOwSubVendor,wSubDevice,wSubAux ShowPIOPISOSlot5 0x0A Slot6 0x08 Slot7 0x09 Slot8 0x07 Assignment of I/O AddressAddress Read Write I/O Address MapAUX data Register RESET\ Control RegisterAUX Control Register Aux Status Register INT Mask Control RegisterINV3 INV2 INV1 INV0 Interrupt Polarity Control Register7 I/O Selection Control Register Read/Write 8-bit data Register Demo program How to install software & utility?Piopiso PIOPISO.EXE for Windows DEMO1 DEMO2 DEMO3 COUNTL++ DEMO4 COUNTL++ DEMO5 CNTL1=CNTL2=CNTL3=CNTL4=0 Page WARRANTY/DISCLAIMER Temperature