下面的程序讲解是基于FL2440开发板的程序讲解,有不对的地方希望大家能够指教
中断控制程序编写步骤
主程序
1.先清除中断源挂起寄存器( SRCPND SRCPND)和中断挂起寄存器( INTPND),可用 rSRCPND= rSRCPND 和rINTPND=rINTPND =来完成;
2.设中断模式,这里使用通用中断,rINTMOD=0x00000000因上电或复位时rINTMOD是清 0的,这步也可以不做。
3.I/O 口初始化,有些中断源要通过 I/O 口向 CPU 申请中断,如外部中断 0(EXTINT0通过 )F口的 GPF0 、外部中断11(EXTINT11)通过G口的 GPG3 向CPU 申请中断,此时两个口的控制寄存器 GPFCON 和GPGCON 的要设置成:GPFCON[1:0]=1,0;GPGCON[7:6]=1,0。
4设中断服务函数地址, S3C2410 在2410addr.h 中定义了 40个宏,设置了系统支持的中断服务函数的指针,设中断服务函数地址就是把我们编写的中断服务函数的地址(就是中断服务函数的名字)赋予相应的函数指针。每个中断源的中断服务函数指针名是固定的:pISR+中断源。
5.设中断触发方式,触发方式有 5种,有上升沿、下降沿、双沿、低电平、高电平触发方式,外部中断触发方式在外部中断控制寄存器 (EXTINTn)中设定。如 EINT0 触发方式在 EXTINT0[2:0] 中设定,[2:0]=000 低电平、 001 高电平、 01X 下降沿、 10X 上升沿、 11X 双沿触发,详见: