Omega Engineering OME-PIO-D96 manual DEMO3

Page 43

4.4DEMO3

/* demo 3 : Count high pulse of P2C0

 

*/

/*

(initial Low & active High)

 

*/

/* step 1 : run DEMO3.EXE

 

*/

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

 

*/

#include "PIO.H"

 

 

#define A1_8259 0x20

 

 

#define A2_8259 0xA0

 

 

#define EOI

0x20

 

 

WORD init_low();

 

 

WORD wBase,wIrq;

 

 

static void interrupt irq_service();

 

 

int COUNT_L,COUNT_H,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

/* /RESET -> 1

*/

outportb(wBase,1);

*/

/* step3 : configure I/O direction

 

*/

outportb(wBase+0xcc,0x00);

/* set CN1 as D/I ports */

init_low();

 

 

 

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

 

for (;;)

 

 

 

{

 

 

 

gotoxy(1,8);

 

 

printf("\nCOUNT_H=%d",COUNT_H);

 

 

if (kbhit()!=0) break;

 

 

}

 

/* disable all interrupt */

outportb(wBase+5,0);

PIO_DriverClose();

 

 

}

 

 

 

/* Use P2C0 as external interrupt signal

 

*/

WORD init_low()

 

 

{

 

 

 

disable();

 

/* disable all interrupt */

outportb(wBase+5,0);

if (wIrq<8)

 

 

 

{

 

 

 

irqmask=inportb(A1_8259+1);

 

 

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

 

setvect(wIrq+8,irq_service);

 

 

}

 

 

 

else

 

 

 

OME-PIO-D96 User Manual (Ver.1.1, Mar/2003)

 

---- 41

Image 43
Contents User’sGuide Czech Republic CanadaMexico BeneluxOME-PIO-D96 Table of Contents Introduction FeaturesOrder Description SpecificationsOptions Product Check List PCI Data Acquisition FamilyOME-PISO-series cost-effective generation, isolated cards Board Layout Hardware configurationI/O port Location Enable I/O OperationRefer to DEMO1.C for demo program D/I/O Architecture Make sure the initial level is High or Low Interrupt OperationINTCHAN3 Interrupt Block Diagram of OME-PIO-D96INTCHAN0/1/2/3 COUNTL++ Initialhigh, activelow Interrupt sourceInitiallow, activehigh Interrupt source Muliti Interrupt Source Read all interrupt state OME-DB-8125 Daughter BoardsOME-DB-37 OME-DN-37 & OME-DN-50OME-ADP-37/PCI & OME-ADP-50/PCI OME-DB-24P/24PD Isolated Input Board OME-DB-24R/24RD Relay Board OME-DB-24PR/24POR/24C Daughter Boards Comparison Table Pin Assignment All signals are TTL compatibleVCC GND PC’s physical slot information How to Find the I/O AddressResource-allocated information OME-PIO/PISO identification informationPIODriverInit&wBoards, wSubVendor,wSubDevice,wSubAux PIODriverInitWSubVendor=0x80 wSubDevice=1 wSubAux=0x10 /* for PIOD96 Current sinking Enable all D/I/O operation of card0 PIOGetConfigAddressSpaceEnable all D/I/O operation of card1 ShowPIOPISOwSubVendor,wSubDevice,wSubAux ShowPIOPISOSlot5 0x0A Slot6 0x08 Slot7 0x09 Slot8 0x07 Assignment of I/O AddressAddress Read Write I/O Address MapAUX Control Register RESET\ Control RegisterAUX data Register Aux Status Register INT Mask Control RegisterINV3 INV2 INV1 INV0 Interrupt Polarity Control Register7 I/O Selection Control Register Read/Write 8-bit data Register Demo program How to install software & utility?Piopiso PIOPISO.EXE for Windows DEMO1 DEMO2 DEMO3 COUNTL++ DEMO4 COUNTL++ DEMO5 CNTL1=CNTL2=CNTL3=CNTL4=0 Page WARRANTY/DISCLAIMER Temperature