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

📄 at91_aic.c

📁 基于ARM7微控制器AT91X40开发板的定时器程序
💻 C
字号:
/* * at91_aic.c *  * author: Kexin (kexin28@126.com) Tel:+8613714451195 * date:   2007-11-22	 */#include "at91_aic.h"extern unsigned long svr[32];static unsigned char at91_irq_prtable[32]={7,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0};void at91_mask_irq(unsigned int irq){  unsigned long mask=1<<irq;  *(volatile unsigned int  *)AIC_IDCR=mask;  }void at91_unmask_irq(unsigned int irq){   unsigned long mask=1<<irq;   *(volatile unsigned int  *)AIC_IECR=mask;}void at91_mask_ack_irq(unsigned int irq){   at91_mask_irq(irq);   *(volatile unsigned int  *)AIC_EOICR=0x00;}int at91_request_irq(unsigned int irq_num,void *irq_isr){   if(irq_num>0&&irq_num<32)   {     svr[irq_num] = (unsigned long)irq_isr;     return 1;   }   else   return -1;}int at91_release_irq(unsigned int irq_num){	    if(irq_num>0&&irq_num<32)   {   	 if( svr[irq_num] != 0)   	 	{        svr[irq_num] = (unsigned long)0;        return 1;      }      else      	return -1;   }   else     return -1;}void at91_init_aic(void){   int irqnum;   *(volatile unsigned int  *)AIC_IDCR=0xffffffff;   *(volatile unsigned int  *)AIC_ICCR=0xffffffff;   for(irqnum=0;irqnum<32;irqnum++) *(volatile unsigned int  *)AIC_EOICR=irqnum;   for(irqnum=0;irqnum<32;irqnum++) *(volatile unsigned int  *)(AIC_SMR(irqnum))=at91_irq_prtable[irqnum] | EdgeTriggered;}

⌨️ 快捷键说明

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