MSP430有哪些可屏蔽中断_MSP430中断的优先级

msp430有哪些可屏蔽中断
中断很大程度上体现了一款单片机的性能,从这一点将msp430在中断方面做得很不错,主要是提供了非常丰富的中断源,基本的有io中断,定时器中断和一些接口中断(spi,uart,i2c)等等。
现在我就谈谈关于msp430中断的一些特性,主要是在项目经历中感觉比较有用的问题,跟大家分享下。
第一,msp430中断的优先级。
msp430支持中断优先级,但是优先级的高低怎么获知呢?它的用手手册上有个很有意思的说法,我原文引用过来“the nearer a module is to the cpu/nmirs, the higher the priority”,翻译过来就是说离cpu/nmirs越近,优先级就越高。那我们怎么知道那个模块离cpu近啊,看datasheet给的框图?总觉得这不可能让一个做电子的人放心,比如框图在中距cpu一样进,那怎么区分呢?所以我们有另外一个更可靠的办法,iar为每一款型号的430都提供了对应的头问题,只靠看中断向量地址就可以知道了。430的中断向量表从地址值0xffc0开始至0xffff结束,一共有32个表项(每个中断向量对应2byte),0xffco对应的中断向量的优先级是最顶的,0xfffe对应的中断向量的优先级是最高的,也就是从0xffco开始至0xffff,32个中断优先级由低至高。这样就很容易弄清楚各中断的优先级了。
第二,msp430中断的响应过程。
首先,当然是中断发生对应的标志为置1。这个时候的过程我详述下,其实是翻译的用户手册但是还是了解下好。
1. cpu会执行完当期的指令。
2. 指向下一条指令的pc被压栈。
3. 状态寄存器sr压栈。
4. 选择最好优先级的中断进行服务。
5. 单源中断的中断标志位会被自动清零,这个地方需要小心下p1,p2这样的中断标志位不会自动清零,因为p1、p2的io中断属于多源中断,就是说p1或者p2的8个io对应到了一个中断向量上,单片机知道是p1或者p2发生了中断,无论是p1的哪一个io发生的都会指向p1的中断向量,p2也是一样的,所以需要在代码中手动清零。
6. 状态寄存器sr被清零,将会终止任何低功耗状态,并且全局中断使能被关闭(gie)。这个地方与51很是有些不同,430响应了中断后会关闭全局中断使能,不会响应任何其他的中断包括优先级高的,就是说默认状态下是没有中断嵌套的,若用到中断嵌套的话需要使用_eint()打开全局中断。
7. 中断向量被装载到pc,开始执行中断服务函数。
以上是整个中断的接收过程,比较重要的地方我用彩色字体标出了。
中断返回就相对简单些,中断服务函数会由reti这条指令返回,sr被弹出,单片机恢复到中断前的状态,pc也被弹出,继续执行指令。
第三,开中断和中断服务函数。
这个是让我在项目中纠结过的地方,也请各位小心。
msp430一旦开了外设的中断,比如spi的接收中断。
在spi的接收中断被使能,单片机一旦发现spi接收标志置位,就会装载中断向量,但是我们如果没有用到spi的接收中断,会怎样呢?由于没用到,所有就没有写spi接收中断的服务函数,此时中断向量里指向中断服务函数地址值是啥?是全0。cpu从0-01ffh取指令,只会发生一件事。puc,上电清零。接着pc会装载0xfffe中断向量的内容,也就是复位向量,程序会跳转到给iar我们做的启动代码。程序再往下执行会执行到我们编写的代码的main()的第一句。这样悲剧就诞生了,荡机了!!!!
所以我在这希望初学430的朋友对于中断,未使用的就不要使能。使能的就一定要写中断服务函数,哪怕是空函数!
以上是我在430中断使用中的一些经验,希望对各位有用!

led灯和节能灯哪个对眼睛好
沃尔玛年底前准备超过1.7万台Oculus Go头显 大幅扩充VR培训项目
STC12系列单片机冷启动、热启动
4款口碑最好的骁龙710国产手机你知道几个
物联网科技生态背后的创新基因
MSP430有哪些可屏蔽中断_MSP430中断的优先级
良率达预期 粤芯半导体12英寸生产线首批样品已出货
为实验室运维提供安全、智能、节能整体解决方案的易云维®实验室智能化管理平台
2020各种主流室内定位技术之间的对比
机器视觉常用专业英文单词解释
MSO5204B泰克示波器维修开机异常案例
现代最新型工业传感器网关具备哪些功能
华为在首尔开设了5G实验室测试其5G技术和设备
华为云数据灾备,企业的一条安全防线
比特币真的“一分为二”了?关于比特币社区的又一次“内斗”你该知道的
晶体位错亦可量子纠缠?
浙江省5G产业联盟成立,推动5G应用发展
汽车全生命周期网络安全风险管理解析
企业通信系统中视频会议的角色变迁
终于等到你:美图手机T8幻影黑特别版即将发售!