![Omega OME-PIO-D144 Скачать руководство пользователя страница 44](http://html1.mh-extra.com/html/omega/ome-pio-d144/ome-pio-d144_hardware-manual_3930423044.webp)
outp(wBase+5,0);
/* disable all interrupt */
PIO_DriverClose();
}
/* ------------------------------------------------------------ */
/* Use PC0 as external interrupt signal
*/
WORD init_high()
{
DWORD dwVal;
disable();
outp(wBase+5,0);
/* disable all interrupt */
if (wIrq<8)
{
irqmask=inp(1);
outp(1,irqmask & (0xff ^ (1 << wIrq)));
setvect(wIrq+8, irq_service);
}
else
{
irqmask=inp(1);
outp(1,irqmask & 0xfb);
/* IRQ2 */
outp(1,irqmask & (0xff ^ (1 << wIrq)));
irqmask=inp(1);
outp(1,irqmask & (0xff ^ (1 << (wIrq-8))));
setvect(wIrq-8+0x70, irq_service);
}
outp(wBase+5,1);
/* enable interrupt */
now_int_state=1;
/* now int_signal is low */
outp(wBase+0x2a,1);
/* select the inverte input */
enable();
}
void interrupt irq_service()
{
if (now_int_state==0)
{
/* find a high_pulse here */
outp(wBase+0x2a,1); /* select the inverte input */
now_int_state=1;
/* now int_signal is High */
}
else
{
COUNT++;
/* find a low_pulse
*/
outp(wBase+0x2a,0); /* select the non-inverte input */
now_int_state=0;
/* now int_signal is High
*/
}
if (wIrq>=8) outp(A2_8259,0x20);
outp(A1_8259,0x20);
}
Refer to Sec. 2.5.2 for more information.
OME-PIO-D144 User’s Manual (Ver.2.1, Sep/2001)
---- 42