5 demo4, Demo4 – Omega Vehicle Security OME-PIO-D56 User Manual

Page 47

Advertising
background image

4.5 DEMO4

/* demo 4 : Count high pulse of PC0 */

/* (initial High & active Low) */

/* step 1 : run DEMO4.EXE */

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

#include "PIO.H"

#define A1_8259 0x20

#define A2_8259 0xA0

#define EOI 0x20

WORD init_high();

WORD wBase,wIrq;

static void interrupt irq_service();

int COUNT,irqmask,now_int_state;

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 */

COUNT=0;

init_high();

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

for (;;)

{

gotoxy(1,7);

printf("\nCOUNT=%d",COUNT);

if (kbhit()!=0) break;

}

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

PIO_DriverClose();

}

/* Use PC0 as external interrupt signal */

WORD init_high()

{

disable();

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

if (wIrq<8)

{

irqmask=inportb(A1_8259+1);

outportb(A1_8259+1,irqmask & 0xff ^ (1<<wIrq));

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

---- 45

setvect(wIrq+8,irq_service);

Advertising