/* This is serial communication program that gain the gid information
from host PC. */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#include <bios.h>
#include <dos.h>
unsigned char TC_IntF=0;
void interrupt far TCInt(void);
void interrupt (* TCOldVect)(void);
/*----------------------------------------------------------*/
/********************** TC 中断设置**************************/
/*----------------------------------------------------------*/
void EnableTCInt()
{
TCOldVect=getvect(0x0d); /* Save old int :IRQ6/IRQ15*/
// TCOldVect=getvect(0x77); /* Save old int :IRQ6/IRQ15*/
disable();
outportb ( 0x21,0x9f&inportb(0x21));
// outportb ( 0xa1,0x7f&inportb(0xa1)); /* Enable 8259 interrupts */
setvect ( 0x0d, TCInt );
// setvect ( 0x77, TCInt );
outportb(0x322,0); /* 清除定时器中断 */
enable();
}
void DisableTCInt()
{
disable();
outportb(0x322,0); /* 清除定时器中断 */
outportb(0x21,inportb(0x21)|0x60);
// outportb(0xa1,inportb(0xa1)|0x80);
setvect(0x0d,TCOldVect);
// setvect(0x77,TCOldVect);
enable();
}
void interrupt far TCInt()
{
TC_IntF=1;
outportb(0x324,0xff);
outportb(0x322,0);
outportb(0x324,0);
outportb(0x20,0x20);
outportb(0xa0,0x20);
}
/*----------------------------------------------------------*/
/********************** 主程序********************************/
/*----------------------------------------------------------*/
void main ()
{
unsigned int i,j=0;
unsigned char Func_No=0,IO_in[4]={0,0,0,0},DInput=0xaa;
unsigned int send_data=0;
unsigned char AD_Lsb,AD_Msb;
START:
clrscr();
outportb(0x322,0);
EnableTCInt(); /* 使能中断 */
outportb(0x327,0x80);
/*-------Test T/C---------*/
// if(Func_No==4)
{
clrscr();
outportb(0x32b,0x36); /* 定时器0初始化,启动 */
delay(1);
outportb(0x328,0xe8); /* 0.1ms */
delay(1);
outportb(0x328,0x03);
delay(1);
outportb(0x32b,0x76); /* 定时器1初始化,启动 */
delay(1);
outportb(0x329,0x0a); /* 1ms */
delay(1);
outportb(0x329,0x00);
delay(1);
outportb(0x32b,0xb6); /* 定时器2初始化,启动 */
delay(1);
outportb(0x32a,0x02); /* 2ms */
delay(1);
outportb(0x32a,0x00);
// EnableTCInt(); /* 使能中断 */
delay(100);
while(!kbhit())
{
printf("TC Int Flag......%2d\n",TC_IntF);
}
DisableTCInt();
}
}