6 demo5, Demo5 – Omega Vehicle Security OME-PIO-D56 User Manual

Page 49

Advertising
background image

4.6 DEMO5

/* demo 5 : Four interrupt source */

/* PC0 : initial Low , active High */

/* PC1 : initial High , active Low */

/* PC2 : initial Low , active High */

/* PC3 : initial High , active Low */

/* step 1 : run DEMO5.EXE */

/* -------------------------------------------------------------- */

#include "PIO.H"

#define A1_8259 0x20

#define A2_8259 0xA0

#define EOI 0x20

WORD init();

WORD wBase,wIrq;

static void interrupt irq_service();

int irqmask,now_int_state,new_int_state,invert,int_c,int_num;

int CNT_L1,CNT_L2,CNT_L3,CNT_L4;

int CNT_H1,CNT_H2,CNT_H3,CNT_H4;

int main()

{

int i,j;

WORD wBoards,wRetVal,t1,t2,t3,t4,t5,t6;

WORD wSubVendor,wSubDevice,wSubAux,wSlotBus,wSlotDevice;

char c;

clrscr();

/* step1 : find address-mapping of PIO/PISO cards */

.

.

/* select card_0 */

/* step2 : enable all D/I/O port */

outportb(wBase,1); /* /RESET -> 1 */

/* step3 : configure I/O direction */

outportb(wBase+0xcc,0x00); /* set CON3 as D/I ports */

init();

printf("\n***** show the count of pulse *****\n");

for (;;)

{

gotoxy(1,7);

printf("\n(CNT_L,CNT_H)=(%d,%d) (%d,%d) (%d,%d) (%d,%d)

%x",CNT_L1,CNT_H1,CNT_L2,CNT_H2,CNT_L3,CNT_H3,CNT_L4,CNT_H4,int_num);

if (kbhit()!=0) break;

}

outportb(wBase+5,0); /* disable all interrupt */

PIO_DriverClose();

}

/* Use PC0, PC1, PC2 & PC3 as external interrupt signal */

WORD init()

{

disable();

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

---- 47

outportb(wBase+5,0); /* disable all interrupt */

Advertising