/******************************************************************************** INT_Int.c: CPU accept external interrupt request during ISR. Compiler: BC++ 3.1, Turbo C ++ 1.01(3.01) (free from http://community.borland.com/museum) MSC 6.0, MSVC 1.52. Compile mode: large Project: INT_int.c ..\Lib\(8000E.Lib,8000.Lib) [24 Mar,2005] by Bill *********************************************************************************/ #include "..\..\Lib\8000E.h" #include "..\..\lib\8048.h" #include void interrupt far ISR_Function(void); int iSlot; void main(void) { char *cSlot; InitLib(); Print("Please selection Slot:"); *cSlot=Getch(); iSlot=atoi(cSlot); Print("iSlot==%d\n\r",iSlot); i8048_Init(iSlot); //Enable channel 0 as rising edge interrupt. i8048_Set_RisingReg(iSlot,0,1); //channel 0 , 1=Enable //Install ISR i8048_InstallISR(iSlot,(unsigned long *)&ISR_Function,6); } /******************************************************** User can use the Print or printCom1 function in ISR, *********************************************************/ void interrupt far ISR_Function(void) { i8048_UnFreezeCPU(iSlot); _asm sti //CPU accepts other interrupt request. if(i8048_Read_RisingEvent(iSlot,0)) //for channel 0 { Print("INT\n\r"); } i8048_UnFreezeINT(iSlot); //Clear interrupt status of 8048. }