MSP430系列教程—中断
中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。简单来说就是CPU停止执行正在执行的任务,去处理突发事件,然后再回来继续执行当前任务。中断在单片机中可以起到定时,外部信号检测等作用。
预备知识
把引起中断的原因或者能够发出中断请求的信号源统称为中断源。中断首先需要由中断源发出中断请求,并征得系统允许后才会发生。在转去执行中断服务程序前,程序需保护中断现场;在执行完中断服务程序后,应恢复中断现场。
中断源一般分成两类:外部硬件中断源和内部软件中断源。外部硬件中断源包括可屏蔽中断和不可屏蔽中断。内部软件中断源产生于单片机内部,主要有以下3种:①由CPU运行结果产生;②执行中断指令INT3;③使用DEBUG中单步或断点设置引起。
多个中断同时等待时优先响应高优先级的中断。
不可屏蔽中断通常是系统产生的,不受通用中断使能位(GIE)位影响,如时钟中断。可屏蔽的中断由外围模块产生,每个中断源都有单独的中断位控制,同时也受全局状态寄存器的GIE位控制。
当发生中断后,如果外围模块独立的使能位打开,并且全局总中断位(GIE)允许,将执行中断服务程序。
从接收中断请求到执行中断服务程序的第一条指令需要延迟六个周期,在此期间完成了以下操作:
- 完成当前所有的指令
- 指向下一条指令的PC被压入堆栈
- SR压入堆栈
- 选择最高