📄 isr.c
字号:
/****************************************Copyright (c)**************************************************
** 广州周立功单片机发展有限公司
** 研 究 所
** http://www.zlgmcu.com
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 刘英斌
** 日 期:2003-03-13
** 描 述:ISP1581 V1.0
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "standard.h"
#include "Kernel.h"
#include "D14.h"
extern KERNEL Kernel_Flag;
extern D14_CNTRL_REG xdata *D14_Cntrl_Ptr;
extern volatile D14_CNTRL_REG xdata D14_Cntrl_Reg;
extern DMA_INT_FLAG DMA_Int_Flag;
extern USB_INT_FLAG USB_Int_Flag;
extern void Init_D14(void);
extern UC ATAPI_State;
extern DRIVE_CONFIG Drive_Setup;
extern void Set_USB(void);
extern ULI bytecount;
extern UI PIO_Count;
//***********************************************************************
//* *
//* Variable Definition *
//* *
//***********************************************************************
UI idata Data;
ULI USB_Interrupt;
UI DMA_Interrupt;
//***********************************************************************
//* *
//* Routine Definition *
//* *
//***********************************************************************
void Int_2(void) interrupt 2 using 0
{
}
void Int_3(void) interrupt 3 using 0
{
}
void Int_4(void) interrupt 4 using 0
{
}
void Int_5(void) interrupt 5 using 0
{
}
//***********************************************************************
//* *
//* Routine : Int_Timer0 *
//* Input : Timer 0 overflow *
//* Output : Set time up flag *
//* Function : To set the time up flag *
//* *
//***********************************************************************
void Int_Timer0(void) interrupt 1 using 0
{
Kernel_Flag.BITS.Timer_Expired = 1;
}
//***********************************************************************
//* *
//* Routine : Int Ext 0 *
//* Input : External Interrupt from ISP1581 *
//* Output : None *
//* Function : To read and keep a copy of the interrupt source of *
//* ISP1581 *
//***********************************************************************
void Int_Ext_0(void) interrupt 0 using 1
{
//read in USB interrupt register and keep a copy
// USB_Interrupt = D14_Cntrl_Reg.D14_INT.VALUE;
// USB_Int_Flag.VALUE |= USB_Interrupt;
//读取ISP1581中断寄存器
USB_Int_Flag.VALUE |= D14_Cntrl_Reg.D14_INT.VALUE;
//回写ISP1581中断寄存器
D14_Cntrl_Reg.D14_INT.VALUE = USB_Int_Flag.VALUE;
//总线复位处理
if(USB_Int_Flag.BITS.RESET)
{
//清除总线复位中断位
USB_Int_Flag.BITS.RESET = 0;
//设置总线复位标志
Kernel_Flag.BITS.Bus_Reset = 1;
PIO_Count = 64;
//切换到全速模式
HS_FS_LED = FULL_SPEED_LED;
Kernel_Flag.BITS.HS_FS_State = FULL_SPEED;
//初始化ISP1581
Init_D14();
//设置softconnect
D14_Cntrl_Reg.D14_MODE.BITS.SOFTCT = 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -