中断控制器

                             中断控制器   

1、中断处理框图

S3C2440A 中的中断控制器接受来自 60 个中断源的请求。提供这些中断源的是内部外设,如 DMA 控制器、 UART、IIC 等等。在这些中断源中,UARTnAC97 EINTn 中断对于中断控制器而言是“或”关系。 

 处理完后,中断标志要清除,中断挂起标志、源挂起标志。要先清除源挂起标志

 一个源可能有多个中断次级源

2、 外部中断的触发方式:

   EXTINT 寄存器为外部中断请求配置信号触发方式为低电平触发、高电平 触发、下降沿触发、上升沿触发或双边沿触发。
   由于每个外部中断引脚包含一个数字滤波器,中断控制可以确认请求信号是否长于 3 个时钟。 

 3、消抖处理:

波形图

消抖方式:

1、硬件消抖

2、在按键操作过程中,如果我们采用的是扫描方式实现,消抖的处理方式通常为

1、降低扫描频率。通常我们delay个20ms,也就是1秒扫50次,人的手速是到不了的,比较符合逻辑。
2、状态比较。比较本次和上次的状态,从而确定是否触发,降低触发误操作。
理论上我们可以将这种行为使用到中断处理方式中,但是,我们需要明确一点,中断中不可以睡眠时间过长。会影响其他任务执行。
我们可以通过以下两种方式间隔进行判断:
3、在定时器的中断函数里,按照指定间隔时间进行判断,这种需要占用一个Timer的中断函数。
4、通过时间差决定是否进行按键判定,即本次外部中断发生和上次中断发生的时间差。时间差就需要有时间计数概念,那么我们如何获得时间计数,可以利用System Tick。

中断使用步骤

1、外部中断初始化

1、使能CPSR中的I位

2、配置引脚功能

3、设置触发方式(下降沿)

4、使能INTMSK和EINTMASK

 

 user模式(非特权模式)下不能改变cpsr,要在svc(特权模式)模式下

2、判断中断

3、初始化irq模式的栈

 4、清除标志位 

写1清0

 

 

 

5、异常退出

当在程序中加while(1)时,程序返回不对

因为pc的值返回不对,在入栈前先减4

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值