第1章 ATmega16/32单片机介绍
1.5 ATmega16/32单片机中断
系统在正常运行主程序时,如果突然有一个重要的任务要马上处理,那么系统就要保存现在的工作(保护现场),然后去处理这个重要的任务,当任务执行完毕后恢复现场,再返回到原来的主程序继续运行,这就是中断的一般流程。
ATmega16/32有二十多个不同的中断源,每个中断和复位在程序空间都有独立的中断向量。所有的中断事件都有自己的使能位。当使能位置位,且状态寄存器的全局中断使能位Ⅰ也置位时,中断可以发生。程序存储区的最低地址默认为复位向量和中断向量。完整的向量列表请参见表1.2。列表同时也决定了不同中断的优先级。向量所在的地址越低,优先级越高。RESET具有最高的优先级,第二个为INTO,即外部中断请求O。通过置位通用中断控制寄存器(GICR)的IVSEL,中断向量可以移至引导Flash的起始处,任一中断发生时,全局中断使能位Ⅰ被清零,从而禁止了所有其他的中断。用户软件可以在中断程序里置位Ⅰ来实现中断嵌套。此时所有的中断都可以中断当前的中断服务程序。执行RE了I指令后,Ⅰ自动置位。
展开