刚刚调了AT91SAM7S64的外部中断,其实只要掌握中断的基本原理,不同中断的处理都是同样的道理,在这个实验中对FIQ,IRQ0,IRQ1进行调试,通过LED来显示程序执行情况. 以下代码我已经在AT91SAM7S64最小系统板调试通过. //功能:外部中断测试 //作者:czleclub #include<at91sam7s64.h> #include "Mini_Board.h" #include "delay.h" AT91S_PIO *pPIO = AT91C_BASE_PIOA ; //PIO寄存器地址 AT91S_AIC *pAIC = AT91C_BASE_AIC ; //AIC寄存器地址 void FIQ_interrupt(void) __irq ; void IRQ0_interrupt(void) __irq ; void IRQ1_interrupt(void) __irq ; static void ExtInt_Init(void) //外部中断初始化 { pPIO->PIO_PDR = (1<<19) | (1<<20)|(1<<30) ; //FIQ,IRQ0,IRQ1对应PIO禁用 pPIO->PIO_BSR = (1<<19) | (1<<20) ; //选择IRQ0,FIQ pPIO->PIO_ASR = (1<<30)