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

📄 irq.h

📁 基于lpc2200 arm的 usb固件
💻 H
字号:
//串口中断回掉函数
void   __irq IRQ_UART0(void)  //FOR 232
{  
   IRQ_RS232_fn();
   VICVectAddr = 0x00;              	// 中断处理结束
}       
void  __irq IRQ_UART1(void)  //FOR 422
{
   IRQ_RS232GPS_fn();
   
    VICVectAddr = 0x00;              	// 中断处理结束
}
//外部中断0中断回掉函数
void   __irq IRQ_EINT0(void) //FOR USB
{
   //buzzer_run(100);
   //DelayNS(10);
    //buzzer_run(10); 
   Usb_Exception();
   
   EXTINT=0x01;                          //清除中断标志
   VICVectAddr = 0x00;              	// 中断处理结束
}
//外部中断1中断回掉函数
void   __irq IRQ_EINT1(void)//FOR KEY1
{
   buzzer_run(100);
   EXTINT=0x02;                           //清除中断标志
   VICVectAddr = 0x00;              	// 中断处理结束
}
//外部中断2中断回掉函数
void   __irq IRQ_EINT2(void)//FOR KEY2
{
   buzzer_run(100);
   DelayNS(300);
    buzzer_run(100);
   EXTINT=0x04;                           //清除中断标志
   VICVectAddr = 0x00;              	// 中断处理结束
}


/****************************************************************************
* 功能:定时器 0  中断
* 入口参数:无
* 出口参数:无
****************************************************************************/
void __irq  IRQ_Time0(void)
{ 
   IRQ_Time0_fn();        	
   T0IR = 0x01;	    			            	// 清除中断标志
   VICVectAddr = 0x00;				            // 通知VIC中断处理结束
}
/****************************************************************************
* 功能:初始化系统所用到的中断
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Enable_Interrupt(void)
{
     /* 设置中断允许 */
   EXTMODE=0x06;                           //设置外部中断为边沿出发模式或电平触发
   EXTPOLAR=0x00;                          //设置三个外部中断为下降沿触发
   VICIntSelect = 0x00000000;              // 设置所有通道为IRQ中断
   VICVectCntl0 = 0x20|6;                  // UART0中断通道分配到IRQ slot 0,即优先级最高
   VICVectCntl1 = 0x20|14;                 // EINT0中断通道分配到IRQ slot 1
   VICVectCntl2 = 0x20|15;                 // EINT1中断通道分配到IRQ slot 2
   VICVectCntl3 = 0x20|16;                 // EINT2中断通道分配到IRQ slot 3
   VICVectCntl4 = 0x20|4;				   // 定时器0中断通道分配
   VICVectCntl5 = 0x20|7;                  //UART1中断 
   
   
   VICVectAddr0 = (uint32)IRQ_UART0;       // 设置UART0向量地址
   VICVectAddr1 = (uint32)IRQ_EINT0;       // 设置EINT0向量地址
   VICVectAddr2 = (uint32)IRQ_EINT1;       // 设置EINT1向量地址
   VICVectAddr3 = (uint32)IRQ_EINT2;       // 设置EINT2向量地址
   VICVectAddr4 = (uint32)IRQ_Time0; 	   // 设置Timer0中断服务程序地址向量 
   VICVectAddr5 = (uint32)IRQ_UART1;       //设置UART1向量地址
   VICIntEnable =  0x0001C0D0;              // 使能UART0,UART1,EINT0,EINT1,EINT2,TIMER0中断 
  	
}
//#define CLR_INTD12()	EXTINT = 0x01							//清除EINT0中断标志
//#define CLR_INT()		VICVectAddr = 0x00	

/*
void Init_D12Int(void)
{
	extern void Usb_Handler(void);
	VICVectCntl1 = (0x20 | 0x0E);			//EINT0通道分配到IRQ slot 1
   	VICVectAddr1 = (INT32U)Usb_Handler;		//设置EINT0向量地址
   	VICIntEnable = 1 << 14;					//允许EINT0
}

*/

⌨️ 快捷键说明

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