中断在任何CPU中地位都是至关重要的,2440中断的配置过程如下:
一、中断初始化配置过程
1、如果是外部中断(其它的中断方式可不要设置),要设置触发方式:上升沿、下降沿、高电平、低电平、双沿触发(用到的是EINT0和EINT1寄存器)
2、清中断源挂起寄存器,中断服务寄存器(可选、防止原有中断干扰) 用ClearSubPending(BIT_SUB_***)和 ClearPending(BIT_***);命令来清次级中断和中断源挂起寄存器
3.、设置中断模式(IRQ或FIQ可选,默认为IRQ)
4 、 设置中断优先级(可选,一般默认即可)
5、 打开外部中断屏蔽,用 EnableSubIrq(BIT_SUB_***); EnableIrq(BIT_***); 命令
6、 设置中断服务入口程序 pISR_***=(U32)__irp_***;(些处__irp_***是由用户自定义的)
二、中断服务程序
1、清中断源挂起寄存器
2、清中断服务寄存器 防止反复进入中断
3、执行中断服务程序
三、相关特殊寄存器的说明
1、INTPND和SRCPND
INTPND:中断挂起寄存器,指示中断响应的状态,相关中断的标志位,如果该中断响应,则其相应的位置1
SRCPND:源中断挂起寄存器,指示中断响应的状态,相关中断的标志位,如果该中断响应,则其相应的位置1
二者的相同点:都是指示中断响应的状态,都是中断挂起寄存器
二者的不同点:当中断源响应中断服务程序时,相应的SRCPND的位置1,与此同时INTPND的相应的标志也会自动的置1.如果中断被屏蔽了,那么SRCPND里面相应的位也会置1,但是INTPND不会置1.
所以在初始化中断和中断服务程序里面都要将相应的INTPND和SRCPND的位清零。
2、外部中断相关总结
外部中断中0-3与其它中断的操作是一样的,但是在4以后的操作就会有一些变化,在清其时和使能时不能只是用ClearPending(BIT_***)和EnableIrq(BIT_***);还必需用到EINTPEND来清除相应的位,和EINTMASK来使能相应的中断位
四、 同时具有源挂起寄存器和挂起寄存器的中断源
SRCPND SUBSRCPND
INT_UART0 INT_RXD0,INT_TXD0,INT_ERR0
INT_UART1 INT_RXD1,INT_TXD1,INT_ERR1
INT_UART2 INT_RXD2,INT_TXD2,INT_ERR2
INT_ADC INT_ADC_S, INT_TC
INT_CAM INT_CAM_C, INT_CAM_P
INT_WDT_AC97 INT_WDT, INT_AC97
在使用上述中断时要将SRCPND和SUBSRCPND都打开才行,否则不能进入中断。
设计资源 培训 开发板 精华推荐
- LT1171HVIQ、12V/2.5A 负至正降压-升压转换器的典型应用
- LF18CDT-TR 1.8V 带开关的低压降稳压器的典型应用
- AD8618ARZ-REEL单电源降噪运算放大器典型应用电路
- 使用 Nuvoton Technology Corporation 的 ISD17150 的参考设计
- AD5313 双轨至轨电压输出、10 位 DAC 的典型应用
- #第八届立创电赛#电子时钟
- 用于工业应用的 C8051F062 MCU 的 C8051F064EK、8051 开发系统
- MainBoard
- AM2G-1215DH30Z ±15V 2 瓦 DC-DC 转换器的典型应用,用于开/关控制应用
- EVAL-AD7294-2SDZ,用于评估 AD7294-2 12 位监控系统的评估板