上文用到了pwm控制蜂鸣器,实现了蜂鸣器频率的改变,有一点不好就是蜂鸣器一直响,可以用一个交互的方式来关闭蜂鸣器。这里就选择按键,开发板上一共4个按键,对应这4个外部中断EINT0,EINT1,EINT2和EINT4(为什么不是EINT0~3呢,让人蛋疼)
要使用外部中断,首先要初始化外部中断。外部中断跟外部引脚F和G复用。要把相应的引脚配置为中断模式:
配置完引脚后,还需要配置具体的中断功能。我们要打开某一中断的屏蔽,这样才能响应该中断,相对应的寄存器为INTMSK 有些位对应着多个外部中断;
由于存在位对应着多个外部中断,如上图 EINT4~7 EINT8~23 对应INTMSK一个屏蔽位,所以要精确打开某一个外部中断就要配置EINTMASK。下图只列出了一部分,对于EINT4~23都适用。
外部中断也要有一个触发的方式,选择低电平、高电平、上升沿、下降沿触发等方式 ,这个要配置EXTINT寄存器
如前面博文 gun-ucos 的s3c2440处理器 中断部分 所述,因为中断来的时候硬件会把SRCPND和INTPND置1,所以需要把相应的位清零(通过置1来清零),对于外部中断还要判断具体是哪个外部中断,这就要看EINTPEND寄存器了。这个寄存器同样也要通过置1来清零。
原文地址:http://blog.csdn.net/xsckernel/article/details/38751405