中断控制器
1、中断处理框图
S3C2440A 中的中断控制器接受来自 60 个中断源的请求。提供这些中断源的是内部外设,如 DMA 控制器、 UART、IIC 等等。在这些中断源中,UARTn、AC97 和 EINTn 中断对于中断控制器而言是“或”关系。
处理完后,中断标志要清除,中断挂起标志、源挂起标志。要先清除源挂起标志
一个源可能有多个中断次级源
2、 外部中断的触发方式:
EXTINT 寄存器为外部中断请求配置信号触发方式为低电平触发、高电平 触发、下降沿触发、上升沿触发或双边沿触发。由于每个外部中断引脚包含一个数字滤波器,中断控制可以确认请求信号是否长于 3 个时钟。
3、消抖处理:
波形图
消抖方式:
1、硬件消抖
2、在按键操作过程中,如果我们采用的是扫描方式实现,消抖的处理方式通常为:
1、降低扫描频率。通常我们delay个20ms,也就是1秒扫50次,人的手速是到不了的,比较符合逻辑。
2、状态比较。比较本次和上次的状态,从而确定是否触发,降低触发误操作。
理论上我们可以将这种行为使用到中断处理方式中,但是,我们需要明确一点,中断中不可以睡眠时间过长。会影响其他任务执行。
我们可以通过以下两种方式间隔进行判断:
3、在定时器的中断函数里,按照指定间隔时间进行判断,这种需要占用一个Timer的中断函数。
4、通过时间差决定是否进行按键判定,即本次外部中断发生和上次中断发生的时间差。时间差就需要有时间计数概念,那么我们如何获得时间计数,可以利用System Tick。