⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isr.c

📁 faraday_USB芯片的固件
💻 C
字号:
/***********
revision:resume,suspend,idlecnt
**********/
#include <stdio.h>
#include "reg51.h"
#include "absacc.h"
#include "FUSB200.h"
#include "type.h"

//extern globalTest;

void irq_int(void)
{  
	//detect resume Interrupt
	//if(XBYTE[FUSB_REG_INT_SOURCE7] & 0x08)
	//{
	//		XBYTE[FUSB_REG_INT_SOURCE7] &= 0xf7;// Clear resume interrupt
	//	} 
	//Detect USB reset interrupt
	if((XBYTE[FUSB_REG_INT_SOURCE7] & FUSB_INT_SOURCE7_USBRST_INT))
	{
		 //delay 10ms for reseting USB
		 //delay();
		 XBYTE[FUSB_REG_INT_SOURCE7] = 0x00;//Clear the USB reset interrupt
		 init_fusb();//Initialize FUSB
		 init_interrupt();//Initialize FIFO
	}
	//EndPoint0 SETUP interrupt(INT_SCR0)
	if(XBYTE[FUSB_REG_INT_GROUP] & 0x01)
	{
		 //EndPoint0 interrupt service
		 ep0_int_service();
		// XBYTE[FUSB_REG_CX_CSR] |= 0x04;//Stall Endpoint0,it will be cleared by next setup transaction.
	}	
	//EndPoint1 IN interrupt(INT_SCR5)
	if(XBYTE[FUSB_REG_INT_GROUP] & 0x20)//FIFO0 is ready to be written
	{		
      	//EndPoint1 interrupt service(IN)
      	ep1_int_service();	
	}	
	//EndPoint2 OUT interrupt(INT_SCR1)
	if(XBYTE[FUSB_REG_INT_GROUP] & 0x04)//FIFO6 is ready to be read & short packet data is recived
	{
		 //EndPoint2 interrupt service(OUT)
		 ep2_int_service();
	}	
	//Check suspend interrupt
	//if(XBYTE[FUSB_REG_INT_SOURCE7] & 0x04)
	//	{
			//suspend delay = 5ms
	//		XBYTE[FUSB_REG_INT_SOURCE7] &= 0xfb;//Clear suspend interrupt
	//		XBYTE[FUSB_REG_MAIN_CTL] |= 0x08;//Go suspend:set GOSUSP
	//		XBYTE[FUSB_REG_IEP1_XPSZ_H] |= 0x08;//Stall IN Endpointx(x=1)
	//		XBYTE[FUSB_REG_OEP2_XPSZ_H] |= 0x08;//Stall OUT Endpointx(x=2)
	//	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -