www.pudn.com > CAN_USB.rar > Interrupt.h


//实时中断历程 
#pragma CODE_SEG __NEAR_SEG NON_BANKED 
 
interrupt void IRQ_ISR(void) 
{ 
	static uchar i = 0; 
	i++; 
	if(i < 10) 
		USB_LED_ON; 
	else if(i < 20) 
	{		 
		USB_LED_OFF; 
	} 
	else 
		i = 0; 
	 
	DisableInterrupts;//中断禁止 
	 
	//读取中断寄存器 
	D12_INT = D12_ReadInterruptRegister();	 
	 
	//清中断	 
	if(D12_INT & 0x40)//复位 
	{ 
		D12_SPD_1; 
	} 
 
	if(D12_INT & 0x80)//挂起改变 
	{ 
		D12_SPD_0; 
	} 
 
	if(D12_INT & 0x01)		EP0_Out(); 
	if(D12_INT & 0x02)		EP0_In(); 
	if(D12_INT & 0x04)		EP1_Out(); 
	if(D12_INT & 0x08)		EP1_In(); 
	if(D12_INT & 0x10)		EP2_Out(); 
	if(D12_INT & 0x20)		EP2_In();	 
	//.......... 
	 
	EnableInterrupts;//中断使能 
} 
 
 
interrupt void RTI_ISR(void) 
{ 
	RTI_count++; 
	 
	//clear RTIF bit 
	CRGFLG = 0x80;   
}