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

📄 interrupt.c

📁 AVR单片机C语言程序设计实例精粹
💻 C
字号:


#include <iom16v.h>
#include <macros.h>
#include "define.h"
#include "initial.h"
#include "pdiusbd12.h"
#include "endpointfun.h"
#include "descriptor.h"
#include "chap9.h"

#pragma interrupt_handler USB_Interrupt:2
void USB_Interrupt(void)   
{

	uint InterruptType;
	DISABLE;  //EA=0;
	bEPPflags.bits.in_isr = 1;
	InterruptType=D12_ReadInterruptRegister(); 
	if(InterruptType != 0)
	{	if(InterruptType & 0x80)  
			bEPPflags.bits.suspend = 1;
		if(InterruptType & 0x0100)
			dma_eot();	
		if(InterruptType & 0x40)  
			bEPPflags.bits.bus_reset =1;
		if(InterruptType & 0x20)  
			MainInEndpoint();
		if(InterruptType & 0x10) 
			MainOutEndpoint();
		if(InterruptType & 0x08)  
			Endpoint_1_In();
		if(InterruptType & 0x04)  
			Endpoint_1_Out();
		if(InterruptType & 0x02) 
			Control_In();
		if(InterruptType & 0x01)  
			Control_Out();
	}
	bEPPflags.bits.in_isr = 0;
	ENABLE;  //EA=1;	
}

void usbserve(void)
{
	if (bEPPflags.bits.setup_packet){		//Setup包处理
		DISABLE;  //EA=0;
		bEPPflags.bits.setup_packet = 0;
		control_handler();					//调用请求处理子程序
		ENABLE ; //EA=1;
	}

	if (bEPPflags.bits.bus_reset) {			//USB总线复位处理
		DISABLE ; //EA=0;
		bEPPflags.bits.bus_reset = 0;
		ENABLE ;  //EA=1;
		d12_busreset();
	} 

	if (bEPPflags.bits.suspend) {			//D12挂起改变处理
		DISABLE ; //EA=0;
		bEPPflags.bits.suspend= 0;
		ENABLE ; //EA=1;
		d12_suspend();
	} 

	//在此添加其它usb事件处理代码
}


void d12_busreset(void)
{
	//在此添加总线复位处理代码
}

/*******************************************************************
** 函数名称: dma_eot()
** 功能描述: DMA结束处理函数
** 输	 入: 无
** 输	 出: 无
********************************************************************/
void dma_eot(void)
{
	//在此添加DMA结束处理代码
}

/*******************************************************************
** 函数名称: d12_suspend()
** 功能描述: 总线挂起改变处理函数
** 输	 入: 无
** 输	 出: 无
********************************************************************/
void d12_suspend(void)
{
	//在此添加总线挂起改变代码
}

⌨️ 快捷键说明

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