中断功能在单片机上一直在用,今天学习在2440上用外部中断的方式,实现按键检测功能。
1. 中断生命周期:中断源,中断过滤,中断处理
1.1 中断源:2440有60个中断源。
1.2 中断过滤:
有两个关卡,SUBMASK和MASK,中断方式有mode控制。
1.3 中断处理:
非向量方式:2440
向量方式:6410,120
下面介绍非向量处理方式:
下面介绍向量处理方式:
2.写中断程序
先把程序模块化定义一个main.c调用其他文件内函数,led.c, interrupt.c,mmu.c,
mmu.c不是全部代码,因为是mmu的设置,这在上一节中写过。
接下来更改start.s文件的irp:,当芯片遇到中断就会先跳到这条指令上。这指令应该保存全部寄存器,以便后期恢复。
通过intoffset寄存器判断哪个中断源产生中断,然后点亮对应led指示灯
最后清零两个中断寄存器,SRCPND,INTPND.如果用到其他也要清零。