原创 学习笔记-LPC2136中断IRQ设置

2012-6-6 22:55 1588 22 22 分类: 消费电子
以设置timer0的中断IRQ为例:
VICIntSelect =0x00;中断选择寄存器
VICVectCntl0=0x24;向量控制寄存器
VICVectAddr0=(Uint32)IRQ_Timer0;向量地址寄存器
VICIntEnable=0x00000010;中断使能寄存器
 
1、VICIntSelect   中断选择寄存器

 

图片

 

中断选择寄存器总共有22个有效位,每个位代表一个中断源。

中断选择寄存器的中断源位号来至于中断源的编号,一个位号对应一个中断源编号。

每个位有两种状态,0和1,分别代表IRQ和FIRQ。

总结:一个16进制的位代表四个二进制的位

赋值:

VICIntSelect=0x00000000;IRQ

VICIntSelect=0xFFFFFFFF;FIRQ

 

2、VICVectCntl0 向量控制寄存器

 

图片

 

向量控制寄存器,有6个有效位,0-4位代表中断源标号(可以代表0-31个数,实际中断源编号是0-21),5位代表 当是1时,IRQ使能,当是0时,FIRQ使能。

 

赋值方式:两种

宏定义:VICVectCntl0 = (第5位使能+中断源编号)= 二进制(1<<5)&(0-21)十进制=得出十六进制0x2x(x代表中断源编号)

直接赋值:VICVectCntl0 =0x24;

3、VICVectAddr0 向量地址寄存器

 

 

图片

 

 

 

向量控制寄存器和向量地址寄存器是一对。

 

4、VICIntEnable 中断使能寄存器

 

 

图片

 

 

中断使能寄存器,总共有22个位,每个位代表一个中断源。

中断使能寄存器位号来至于中断源的编号,每个位号对应一个中断源编号。

每个位有0和1两种状态,分别代表FIRQ使能和IRQ使能。

 

赋值:有两种方式

 

通过宏定义方式:VICIntEnble =(1<<4);4为中断位号(或中断源编号)

直接赋值方式:VICIntEnable = 0x0000 0001;

总结:中断选择寄存器VICIntSelect 和中断使能寄存器VICIntEnable 赋值方式相同。

 

 

 

 

b.gif

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
22
关闭 站长推荐上一条 /2 下一条