LPC3250中断控制器有3个,分别是主中断控制器(MIC_ER)、子中断控制1(SIC1)和子中断控制2(SIC2)。
对这三个中断控制器的理解:
MIC_ER通过特定位来控制所有中断的使能。其中MIC_ER[31:30]控制Sub2FIQ、Sub1FIQ,MIC_ER[1:0]控制Sub2IRQ、Sub1IRQ。而MIC_ER、SIC1及SIC2分别控制着不同的中断源。3个控制器控制的中断源一共73个中断源(3*32-6-8-9)。
中断初始化,以SIC2IRQ中断为例:
MIC_ER=0X02 ; //主中断控制器设置中断为SIC2IRQ中断
SIC2_ER=(1<<10); //设置SIC2_ER[10]位中断
MIC_APR=0X00; // 低电平或者下降沿有效
SIC2_APR=0X00; // 低电平或者下降沿有效
MIC_ATR=0X00; // 电平触发
SIC2_ATR=(1<<10); // 边沿触发
MIC_ITR=0X00; // 设为IRQ中断
SIC_ITR=0X00; // 设为IRQ中断
SIC_RSR=(1<<10); // 清除中断,仅对边沿触发有效
之后可以设置中断响应函数,比如蜂鸣器鸣叫函数:
void IRQ_fengming(void)
{
/*
<