Omega OME-PIO-D56 User Manual page 17

Pci-bus digital i/o board
Table of Contents

Advertisement

2.4.4
Initial_low, active_high Interrupt source
If the PC0 is a initial_low, active_high signal, the interrupt service routine
should use INV0 to inverted/non-inverted the PC0 for high_pulse generation as
follows: (Refer to DEMO3.C)
Initial setting:
now_int_state=0;
outportb(wBase+0x2a,1); /* select the non-inverted PC0 */
void interrupt irq_service()
{
if (now_int_state==1)
{
COUNT_L++;
If((inport(wBase+7)&1)==0)/* the PC0 is still fixed in LOW
{
outportb(wBase+0x2a,1);/* INV0 select the non-inverted input */(d)
now_int_state=0;
}
else now_int_state=1;
}
else
{
COUNT_H++;
If((inport(wBase+7)&1)==1)/* the PC0 is still fixed in HIGH
{
outportb(wBase+0x2a,0);/* INV0 select the inverted input
now_int_state=1;
}
else now_int_state=0;
}
if (wIrq>=8) outportb(A2_8259,0x20);
outportb(A1_8259,0x20);
}
PC0
INV0
INT_CHAN_0
OME-PIO-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003)
/* initial state for PC0
/* now PC0 is changed to LOW
/* --> INT_CHAN_0=!PC0=HIGH now
/* find a LOW_pulse (PC0)
/*
need to generate a high_pulse
/* INT_CHAN_0=PC0=LOW -->
/* INT_CHAN_0 generate a high_pulse
/* now PC0=LOW
/* now PC0=HIGH
/* don't have to generate high_pulse
/* now PC0 is changed to HIGH
/* --> INT_CHAN_0=PC0=HIGH now
/* find a High_pulse (PC0)
/* need to generate a high_pulse
/* INT_CHAN_0=!PC0=LOW -->
/* INT_CHAN_0 generate a high_pulse
/* now PC0=HIGH
/* now PC0=LOW
/* don't have to generate high_pulse
(a)
(b)
*/
*/(b)
(c)
(d)
*/(c)
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/(a)
*/
*/
*/
*/
*/
*/
*/
*/
*/
---- 15

Advertisement

Table of Contents
loading

This manual is also suitable for:

Ome-pio-d24

Table of Contents