samisr.c

来自「At91s64_ucos2.76:基于at91sam7s64芯片的uc/os移植」· C语言 代码 · 共 172 行

C
172
字号
#include "AT91SAM7S64.h"

#include "SAMIsr.h"
/*
ID       Peripheral
0        AIC                    FIQ
1        SYSIRQ
2        PIOA
3        Reserved
4        ADC
5        SPI
6        US0
7        US1
8        SSC
9        TWI
10       PWMC
11       UDP
12       TC0
13       TC1
14       TC2
15~29    Reserved
30       AIC                    IRQ0
31       AIC                    IRQ1                         
*/

extern int Image$$RO$$Base;
extern void RESET(void);

extern void VECTORED_IRQ_HANDLER(void);
extern void S64PitISR(void);
extern void Uart0ISR(void);
extern void Uart1ISR(void);
extern void TC2ISR(void);
extern void PWMCISR(void);

void AT91_Dft_ISR(void)
{


}

void AT91_Spu_ISR(void)
{


}

void SAMIsrInit(void)
{
 unsigned int i=0;
 
 AT91C_BASE_AIC->AIC_SPU=(unsigned int)AT91_Spu_ISR;
 
 for(i=1;i<32;i++)
    {
     AT91C_BASE_AIC->AIC_SVR[i]=(unsigned int)VECTORED_IRQ_HANDLER;//-(unsigned int)RESET;
    } 
}

void SAMIsr(unsigned int vect)
{
                        // 也可以使用函数指针
  switch(vect)
     {
	   case 0:
	          break;

	   case 1:S64PitISR();
			  break;
			  
	   case 2:
	          break;

	   case 3:
	          break;

	   case 4:
	          break;

	   case 5:
	          break;
			  
	   case 6:Uart0ISR();
	          break;

	   case 7:Uart1ISR();
	          break;

	   case 8:
	          break;

	   case 9:
	          break;			  
		
	   case 10:PWMCISR();
	          break;

	   case 11:
	          break;

	   case 12:
	          break;

	   case 13:
	          break;
			  
	   case 14:TC2ISR();
	          break;

	   case 15:
	          break;

	   case 16:
	          break;

	   case 17:
	          break;			  
			  
	   case 18:
	          break;

	   case 19:
	          break;

	   case 20:
	          break;

	   case 21:
	          break;
			  
	   case 22:
	          break;

	   case 23:
	          break;

	   case 24:
	          break;

	   case 25:
	          break;			  
		
	   case 26:
	          break;

	   case 27:
	          break;

	   case 28:
	          break;

	   case 29:
	          break;
			  
	   case 30:
	          break;

	   case 31:
	          break;

	   default:
	          break;

	 }


  AT91C_BASE_AIC->AIC_EOICR=0;
}



⌨️ 快捷键说明

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