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

📄 vicint.c

📁 ARM7 lpc2100 VIC中断驱动API,源码有详细注解
💻 C
字号:
#include "cfg.h"
/*
#define VICInt_WDT_Num    0
#define VICInt_SOFT_Num   1
#define VICInt_T0_Num     4
#define VICInt_T1_Num     5
#define VICInt_UART0_Num  6
#define VICInt_UART1_Num  7
#define VICInt_PWM0_Num   8
#define VICInt_I2C_Num    9
#define VICInt_SPI0_Num   10
#define VICInt_SPI1_Num   11
#define VICInt_PLL_Num    12
#define VICInt_RTC_Num    13
#define VICInt_ENT0_Num   14
#define VICInt_ENT1_Num   15
#define VICInt_ENT2_Num   16
#define VICInt_ENT3_Num   17
#define VICInt_AD_Num     18
*/

void Func_VICIntIniti(void);

void  __irq IRQ_WDT_Int(void);
//void  __irq IRQ_SOFT_Int(void);
void  __irq IRQ_T0_Int(void);
void  __irq IRQ_T1_Int(void);
void  __irq IRQ_UART0_Int(void);
void  __irq IRQ_UART1_Int(void);
void  __irq IRQ_PWM0_Int(void);
void  __irq IRQ_I2C_Int(void);
void  __irq IRQ_SPI0_Int(void);
void  __irq IRQ_SPI1_Int(void);
void  __irq IRQ_PLL_Int(void);
void  __irq IRQ_RTC_Int(void);
void  __irq IRQ_ENT0_Int(void);
void  __irq IRQ_ENT1_Int(void);
void  __irq IRQ_ENT2_Int(void);
void  __irq IRQ_ENT3_Int(void);
void  __irq IRQ_AD_Int(void);

void Func_VICIntIniti(void)
{	VICIntEnClr =0XFFFFFFFF;				//关闭所有中断,由VICIntEnable=0xFFFFFFFF;开启所有中断
	VICIntSelect=0X00000000;				//所有中断为向量中断
	VICVectAddr =0x00000000;				//结束中断
	
	#ifdef VICInt_WDT_Num
		VICVectAddr0 =(int)IRQ_WDT_Int; 				//设置中断源地址
		VICVectCntl0 =VICInt_WDT_Num <<0  |  			//设置中断源序号
		 						    1<<5  ;			//开通中断		 
	#endif

/*	#ifdef VICInt_SOFT_Num
		VICVectAddr1 =(int)IRQ_SOFT_Int; 			
		VICVectCntl1 =VICInt_SOFT_Num <<0  |  			
		 						     1<<5  ;			 
	#endif
*/	
	#ifdef VICInt_T0_Num
					
		VICVectCntl1 =VICInt_T0_Num <<0  |  			
		 						   1<<5  ;
		VICVectAddr1 =(int)IRQ_T0_Int; 			 
	#endif
	
	#ifdef VICInt_T1_Num
		VICVectAddr2 =(int)IRQ_T1_Int; 			
		VICVectCntl2 =VICInt_T1_Num <<0  |  			
		 						   1<<5  ;			 
	#endif
	
	#ifdef VICInt_UART0_Num
		VICVectAddr3 =(int)IRQ_UART0_Int; 			
		VICVectCntl3 =VICInt_UART0_Num <<0  |  			
		 						      1<<5  ;			 
	#endif
	
	#ifdef VICInt_UART1_Num
		VICVectAddr4 =(int)IRQ_UART1_Int; 			
		VICVectCntl4 =VICInt_UART1_Num <<0  |  			
		 						      1<<5  ;			 
	#endif
	
	#ifdef VICInt_PWM0_Num
		VICVectAddr5 =(int)IRQ_PWM0_Int; 			
		VICVectCntl5 =VICInt_PWM0_Num <<0  |  			
		 						     1<<5  ;			 
	#endif	
	
	
	#ifdef VICInt_I2C_Num
		VICVectAddr6 =(int)IRQ_I2C_Int; 			
		VICVectCntl6 =VICInt_I2C_Num <<0  |  			
		 						    1<<5  ;			 
	#endif
	
	#ifdef VICInt_SPI0_Num
		VICVectAddr7 =(int)IRQ_SPI0_Int; 			
		VICVectCntl7 =VICInt_SPI0_Num <<0  |  			
		 						      1<<5  ;			 
	#endif
	
	#ifdef VICInt_SPI1_Num
		VICVectAddr8 =(int)IRQ_SPI1_Int; 			
		VICVectCntl8 =VICInt_SPI1_Num <<0  |  			
		 						     1<<5  ;			 
	#endif
	
	#ifdef VICInt_PLL_Num
		VICVectAddr9 =(int)IRQ_PLL_Int; 			
		VICVectCntl9 =VICInt_PLL_Num <<0  |  			
		 						     1<<5  ;			 
	#endif
	
	#ifdef VICInt_RTC_Num
		VICVectAddr10 =(int)IRQ_RTC_Int; 			
		VICVectCntl10 =VICInt_RTC_Num <<0  |  			
		 						     1<<5  ;			 
	#endif
	
	#ifdef VICInt_ENT0_Num
		VICVectAddr11 =(int)IRQ_ENT0_Int; 			
		VICVectCntl11 =VICInt_ENT0_Num <<0  |  			
		 						      1<<5  ;			 
	#endif
	
	#ifdef VICInt_ENT1_Num
		VICVectAddr12 =(int)IRQ_ENT1_Int; 			
		VICVectCntl12 =VICInt_ENT1_Num <<0  |  			
		 						      1<<5  ;			 
	#endif
	
	#ifdef VICInt_ENT2_Num
		VICVectAddr13 =(int)IRQ_ENT2_Int; 			
		VICVectCntl13 =VICInt_ENT2_Num <<0  |  			
		 						      1<<5  ;			 
	#endif
	
	#ifdef VICInt_ENT4_Num
		VICVectAddr14 =(int)IRQ_ENT3_Int; 			
		VICVectCntl14 =VICInt_ENT4_Num <<0  |  			
		 						   	  1<<5  ;			 
	#endif
	
	#ifdef VICInt_AD_Num
		VICVectAddr15 =(int)IRQ_AD_Int; 			
		VICVectCntl15 =VICInt_AD_Num <<0  |  			
		 						   	1<<5  ;			 
	#endif
	
}	

/*********************************************************************************************************
** 函数名称: void  __irq IRQ_WDT_Int(void)
** 功能描述: WDT中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_WDT_Int(void)
{	//在此处添加代码
}
/*
void  __irq IRQ_SOFT_Int(void)
{	//在此处添加代码
}
*/
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_T0_Int(void)
** 功能描述: T0中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_T0_Int(void)
{	//在此处添加代码
/*	T0IR=	0<<0  |			//T0MR0匹配中断,1:有中断,写1清0,写0无效;0:无中断
			0<<1  |			//T0MR1匹配中断,1:有中断,写1清0,写0无效;0:无中断
			0<<2  |			//T0MR2匹配中断,1:有中断,写1清0,写0无效;0:无中断
			0<<3  |			//T0MR3匹配中断,1:有中断,写1清0,写0无效;0:无中断
			
			0<<4  |			//T0CR0捕获中断,1:有中断,写1清0,写0无效;0:无中断
			0<<5  |			//T0CR1捕获中断,1:有中断,写1清0,写0无效;0:无中断
			0<<6  |			//T0CR2捕获中断,1:有中断,写1清0,写0无效;0:无中断
			0<<7  ;			//T0CR3捕获中断,1:有中断,写1清0,写0无效;0:无中断
*/
			
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_T1_Int(void)
** 功能描述: T1中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_T1_Int(void)
{	//在此处添加代码
/*	T1IR=	0<<0  |			//T1MR0匹配中断,1:有中断,写1清0,写0无效;0:无中断
			0<<1  |			//T1MR1匹配中断,1:有中断,写1清0,写0无效;0:无中断
			0<<2  |			//T1MR2匹配中断,1:有中断,写1清0,写0无效;0:无中断
			0<<3  |			//T1MR3匹配中断,1:有中断,写1清0,写0无效;0:无中断
			
			0<<4  |			//T1CR0捕获中断,1:有中断,写1清0,写0无效;0:无中断
			0<<5  |			//T1CR1捕获中断,1:有中断,写1清0,写0无效;0:无中断
			0<<6  |			//T1CR2捕获中断,1:有中断,写1清0,写0无效;0:无中断
			0<<7  ;			//T1CR3捕获中断,1:有中断,写1清0,写0无效;0:无中断
*/
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_UART0_Int(void)
** 功能描述: UART0中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_UART0_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_UART1_Int(void)
** 功能描述: UART1中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_UART1_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_PWM0_Int(void)
** 功能描述: PWM0中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_PWM0_Int(void)
{	//在此处添加代码
/*
	PWMIR= 	0<< 0  |		//PWMMR0中断标志位,1:有中断,写1清0,写0无效;0:无中断
			0<< 1  |		//PWMMR1中断标志位,1:有中断,写1清0,写0无效;0:无中断
			0<< 2  |		//PWMMR2中断标志位,1:有中断,写1清0,写0无效;0:无中断
			0<< 3  |		//PWMMR3中断标志位,1:有中断,写1清0,写0无效;0:无中断
			
			0<< 4  |		//[7:4]无定义
			
			0<< 8  |		//PWMMR4中断标志位,1:有中断,写1清0,写0无效;0:无中断
			0<< 9  |		//PWMMR5中断标志位,1:有中断,写1清0,写0无效;0:无中断
			0<< 10 |		//PWMMR6中断标志位,1:有中断,写1清0,写0无效;0:无中断
			
			0<< 11 ;		//[31:11]无定义
*/
			
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_I2C_Int(void)
** 功能描述: I2C中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_I2C_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_SPI0_Int(void)
** 功能描述: SPI0中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_SPI0_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_SPI1_Int(void)
** 功能描述: SPI1中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_SPI1_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_PLL_Int(void)
** 功能描述: PLL中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_PLL_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_RTC_Int(void)
** 功能描述: RTC中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_RTC_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq ENT0_Int(void)
** 功能描述: ENT0中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_ENT0_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_ENT1_Int(void)
** 功能描述: ENT1中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_ENT1_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_ENT2_Int(void)
** 功能描述: ENT2中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_ENT2_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_ENT3_Int(void)
** 功能描述: ENT3中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_ENT3_Int(void)
{	//在此处添加代码
}
/*********************************************************************************************************
** 函数名称: void  __irq IRQ_AD_Int(void)
** 功能描述: AD中断处理函数
* 入口参数:无
* 出口参数:无
********************************************************************************************************/
void  __irq IRQ_AD_Int(void)
{	//在此处添加代码
}

⌨️ 快捷键说明

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