MSP430中断解析
0赞
个人单片机启蒙是从MCS-51开始的,后来想继续进阶,所以选择了MSP430单片机来学习,一是因为其是16位的单片机,性能提升了;二是因为其低功耗特性,相信在TI的推广下必有一定的市场。注册阿莫蛮久了,很少自己写些东西,这次就当锻炼下自己的文笔吧,也算是一个小小的总结。
MCU就是一个微型的计算机系统,其中断系统应该是其核心,不同的MCU有着不同的中断机制,今天我们就简单聊聊MSP430的中断机制(此处以经典的MSP430x14x系列为例)
3大类中断源:MSP430共有三大类中断源:系统复位、非可屏蔽中断、可屏蔽中断,其中跟开发者最相关的是可屏蔽中断(片内外设中断)
16级优先级:MSP430将三大类中断源分成了16级优先级0-15,其中15为最高优先级,0为最低优先级;
在不使用中断嵌套功能(GIE)时,当多个可屏蔽中断同时发生时,优先级高的先被执行,优先级低的后被执行;一旦CPU正在执行某个中断响应,即使有其他中断请求(无论其优先级高低),也必须等当前中断响应结束(结束后需置位GIE,以接受其他中断),才能再次响应其他中断请求。
无限中断嵌套:如果使用中断嵌套功能,当进入当前可屏蔽中断响应服务程序时,先需开启中断嵌套功能(置位GIE)功能,则在CPU执行中断响应过程中,有其他中断请求(无论其优先级高低),CPU直接停下来去响应这个抢占中断(编号为1级),等1级抢占中断响应结束,再回头来执行之前未完成的初始中断。当然如果在进入1级抢占中断服务子程序时,也先开启了中断嵌套功能(置位GIE)功能,则在CPU执行1级抢占中断响应过程中,有其他中断请求(无论其优先级高低),CPU同样直接停下来去响应这个抢占中断(编号为2级),等2级抢占中断响应结束,再回头来执行之前未完成的1级抢占中断,然后再执行更早之前未完成的初始中断。如此类推。。。
MSP430共有3大类中断源,分成16级中断优先级,在不使用中断嵌套功能时,多个中断出现时按优先级从高到低执行,且不支持嵌套;当开启中断嵌套功能时,则可以无限嵌套。
