中断是微控制器处理异步事件的一种机制。一般而言,每个中断源都能够选择打开和关闭,默认状态下都是关闭的。为了能让 CPU 响应中断源的中断请求,必须打开对应的中断。
不同的的单片机中断的原理都大同小异,但是在具体编写代码时可能会不一样。这里介绍的freescale的K20是基于ARM的M4内核的,所以和其他的ARM芯片类似,需要在三个地方配置:①中断源本身存在中断使能寄存器位,该位决定中断源是否产生中断请求,比如GPIO就在这个引脚对应的寄存器里会有相应的中断使能位;②中断控制器( NVIC)相应的中断通道(各个中断源的中断请求连接在 NVIC 的不同的中断通道, NVIC 负责管理系统所有的中断信号,比如赋予各中断优先级等)需要被打开;③全局中断屏蔽位需要打开,该位能够屏蔽和打开所有的可屏蔽中断(换句话说,有一些中断是没有打开全局中断也可以进入中断的,它们是不可屏蔽中断,在K20里面一共有16个)。
这里介绍一种比较基础的中断,GPIO的中断。结合前面的GPIO的内容,我们使用按键来控制灯的闪烁方式。
|