Omega OME-PIO-D56 User Manual page 46

Pci-bus digital i/o board
Table of Contents

Advertisement

irqmask=inportb(A1_8259+1);
outportb(A1_8259+1,irqmask & 0xff ^ (1<<wIrq));
setvect(wIrq+8,irq_service);
}
else
{
irqmask=inportb(A1_8259+1);
outportb(A1_8259+1,irqmask & 0xfb);
irqmask=inportb(A2_8259+1);
outportb(A2_8259+1,irqmask & 0xff ^ (1<<(wIrq-8)));
setvect(wIrq-8+0x70,irq_service);
}
outportb(wBase+5,1);
now_int_state=0;
outportb(wBase+0x2a,1);
enable();
}
void interrupt irq_service()
{
if (now_int_state==1)
{
if ((inportb(wBase+7)&1)==0)
{
outportb(wBase+0x2a,1);
now_int_state=0;
}
else now_int_state=1;
}
else
{
COUNT++;
if ((inportb(wBase+7)&1)==1)
{
outportb(wBase+0x2a,0);
now_int_state=1;
}
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)
/* enable interrupt (PC0)
/* now ini_signal is low
/* select the non-inverte
/* now PC0 change to low
/* INT_CHAN_0 = !PC0
/* PC0 still fixed in low
/* need to generate a high pulse */
/* INV0 select noninverted input */
/* now PC0=low
/* now PC0=High
/* now PC0 change to high
/* INT_CHAN_0 = PC0
/* PC0 still fixed in high
/* need to generate a high pulse */
/* INV0 select inverted input
/* now PC0=high
/* now PC0=low
/* IRQ2 */
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
---- 44

Advertisement

Table of Contents
loading

This manual is also suitable for:

Ome-pio-d24

Table of Contents