Omega-vehicle-security OME-PIO-D56 Manuel d'utilisateur Page 47

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 53
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 46
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);
Vue de la page 46
1 2 ... 42 43 44 45 46 47 48 49 50 51 52 53

Commentaires sur ces manuels

Pas de commentaire