Omega Vehicle Security OME-PIO-D56 manual Count++

Models: OME-PIO-D56

1 53
Download 53 pages 55.1 Kb
Page 48
Image 48

}

else

{

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 (PC0)

*/

now_int_state=1;

/* now ini_signal is high

*/

outportb(wBase+0x2a,0);

/* select the inverte

*/

enable();

 

 

}

 

 

void interrupt irq_service()

 

 

{

/* now PC0 change to low

*/

if (now_int_state==1)

{

/* INT_CHAN_0 = !PC0

*/

COUNT++;

/* PC0 still fixed in low

*/

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

{

/* need to generate a high pulse */

outportb(wBase+0x2a,1);

/* INV0 select noninverted input */

now_int_state=0;

/* now PC0=low

*/

}

/* now PC0=High

*/

else now_int_state=1;

}

/* now PC0 change to high

*/

else

{

/* INT_CHAN_0 = PC0

*/

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

/* PC0 still fixed in high

*/

{

/* need to generate a high pulse */

outportb(wBase+0x2a,0);

/* INV0 select inverted input

*/

now_int_state=1;

/* now PC0=high

*/

}

/* now PC0=low

*/

else now_int_state=0;

}

 

 

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

}

OME-PIO-D56/PIO-D24 User Manual (Ver.2.1, Oct/2003, PPH-005-21)

---- 46

Page 48
Image 48
Omega Vehicle Security OME-PIO-D56 manual Count++