
30
•
Control Programming
void interrupt far do_isr(void);
void interrupt (*old_isr)(void);
int Base_addr;
int inter = 0;
/*--------------------------------------------------------*/
void set_counter( unsigned char c)
{
outp( INDEX, CCW);
outp( DATA, 0x30);
outp( INDEX, COUNT);
outp( DATA, c);
outp( DATA, 0x00);
}
unsigned char ia = 0x2;
void interrupt far do_isr()
{
outp( INDEX, PA0);
outp( DATA, ia);
if( ia > 0xbe) ia = 0x0;
ia = ia + 5;
inter = 1;
outp( INDEX, 0x3);
inp( DATA);
outp( IC8259_1, 0x20);
}
/* Timer pacer interval is depend on the value of c1 and c2*/
void set_timer( int c1, int c2)
{
outp( INDEX, CCW);
outp( DATA, 0x76);
outp( DATA, 0xb6);
outp( INDEX, TIMER1);
outp( DATA, LOBYTE(c1));
outp( DATA, HIBYTE(c1));
outp( INDEX, TIMER2);
outp( DATA, LOBYTE(c2));
outp( DATA, HIBYTE(c2));
}
main()
{
unsigned char vb = 0;
unsigned char vc;
clrscr();
/* enable and clear interrupt */
outp( INDEX, 0x3);
inp( DATA);
old_isr = getvect( IRQ5);
setvect( IRQ5, do_isr);
outp( IC 1,( inp( 0x21) & 0xdf));
Содержание PET-48DIO
Страница 1: ...NuDAQ PET 48DIO Programmable 48 bit DIO Event and Timer Cards User s Guide...
Страница 2: ......