Omega Vehicle Security OME-PIO-D56 manual Read all interrupt state

Models: OME-PIO-D56

1 53
Download 53 pages 55.1 Kb
Page 19
Image 19

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 PC0 change to high

*/

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

{

 

 

 

CNT_H1++;

 

 

 

}

/* now PC0 change to low

*/

else

{

 

 

 

CNT_L1++;

 

 

 

}

/* to generate a high pulse

*/

invert=invert^1;

}

 

 

 

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

 

 

 

{

/* now PC1 change to high

*/

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

{

 

 

 

CNT_H2++;

 

 

 

}

/* now PC1 change to low

*/

else

{

 

 

 

CNT_L2++;

 

 

 

{

/* to generate a high pulse

*/

invert=invert^2;

}

 

 

 

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

 

 

 

{

/* now PC2 change to high

*/

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

{

 

 

 

CNT_H3++;

 

 

 

}

/* now PC2 change to low

*/

else

{

 

 

 

CNT_L3++;

 

 

 

}

/* to generate a high pulse

*/

invert=invert^4;

}

 

 

 

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

 

 

 

{

/* now PC3 change to high

*/

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

{

 

 

 

CNT_H4++;

 

 

 

{

/* now PC3 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-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003)

---- 17

Page 19
Image 19
Omega Vehicle Security OME-PIO-D56 manual Read all interrupt state