4646|5

245

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

学习之MSP430中断 [复制链接]

中断是MSP430微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。

MS430 的中断比较多,几乎每个外围模块都能够产生中断。MSP430 可以在没有事件发生时进入低功耗状态,事件发生时,通过中断唤醒CPU ,事件处理完毕后,CPU 再次进入低功耗状态。由于CPU 的运算速度和退出低功耗状态的速度很快,所以,在很多应用中,CPU 大部分时间都能够处于低功耗状态,这是MSP430能够如此节省电能的重要原因之一。

MSP430的中断分为:系统复位、不可屏蔽中断、可屏蔽中断。

系统复位中断向量为0xFFFE不可屏蔽中断向量为0xFFFC,产生不可屏蔽中断的原因如下:

1 RST/NMI管脚功能选择为NMI 时,RST/NMI管脚上产生一个上升沿或者下降沿(具体是上升沿还是下降沿由寄存器WDTCTL中的NMIES位决定)。NMI 中断可以用 WDTCTL中的NMIIE 位屏蔽。需要注意的是,当RST/NMI管脚功能选择为NMI 时,不要让 RST/NMI管脚上的信号一直保持在低电平。原因是如果发生了PUC ,则RST/NMI管脚的功能被初始化为复位功能,而此时它上面的信号一直保持低电平,使CPU 一直处于复位状态,不能正常工作。

2 )振荡器失效中断允许时,振荡器失效。

3 FLASH存储器的非法访问中断允许时,对FLASH存储器进行了非法访问。

不可屏蔽中断可由各自的中断允许位禁止或打开。当一个不可屏蔽中断请求被接受时,相应的中断允许位自动复位。退出中断程序时,如果希望中断继续有效,则必须用软件将相应中断允许位置位。

可屏蔽中断的中断源来自具有中断能力的外围模块,包括看门狗定时器(工作在定时器模式)溢出触发的中断。每一个中断都可以被自己的中断控制位屏蔽。也可以被全局中断控制位屏蔽。 多个中断请求发生时,MSP430选择拥有最高优先级的中断响应。响应中断时,MSP430会将不可屏蔽中断控制位SR.GIE 复位,因此,一旦响应了中断,即使有优先级更高的可屏蔽中断出现,MSP430也不会中断当前响应的中断,去响应另外的中断。SR.GIE复位不影响不可屏蔽中断,所以仍可以接受不可屏蔽中断的中断请求。

中断响应的过程为下图所示:

从中断响应和返回的过程中可以看出,如果希望在中断程序执行时仍然可以响应新的中断请求,则可以进入中断程序后将 SR.GIE置位。这样新的中断请求出现时,MSP430会中断当前的执行程序,响应最高优先级的中断请求,甚至包括刚被中断执行的中断程序的中断请求也可以再次被响应。但要注意,如果中断嵌套的层次错误,则容易发生堆栈溢出,程序的执行必定会混乱,而 C 语言编译器是不对堆栈溢出进行检查的。 响应中断时,单中断源标志中断请求的中断请求标志位自动复位。多中断源标志则需要软件进行复位。

1.jpg (75.11 KB, 下载次数: 10)

中断与堆栈

中断与堆栈

最新回复

如果希望在中断程序执行时仍然可以响应新的中断请求,则可以进入中断程序后将 SR.GIE置位。这样新的中断请求出现时,MSP430会中断当前的执行程序,响应最高优先级的中断请求 其实楼主这个地方理解错了,如果在进入中断程序后将SR.GIE置位,这样新的中断请求出现的时,MSP430会中断当前的中断服务程序,响应新的中断,不管新的中断优先级比当前中断优先级高还是低,都会被响应新的中断。 先前我也是这种想法,但在一次实际操作中我发现,并不是楼主说的这样。  详情 回复 发表于 2013-4-9 20:19
 
点赞 关注
个人签名学习靠的就是努力,靠的就是坚持……

回复
举报

90

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
学习了……:carnation:
 
 

回复

216

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
哈哈,谢谢楼主的心得!!!
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
:carnation:
 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

5
 
多谢楼主
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

6
 
如果希望在中断程序执行时仍然可以响应新的中断请求,则可以进入中断程序后将 SR.GIE置位。这样新的中断请求出现时,MSP430会中断当前的执行程序,响应最高优先级的中断请求

其实楼主这个地方理解错了,如果在进入中断程序后将SR.GIE置位,这样新的中断请求出现的时,MSP430会中断当前的中断服务程序,响应新的中断,不管新的中断优先级比当前中断优先级高还是低,都会被响应新的中断。

先前我也是这种想法,但在一次实际操作中我发现,并不是楼主说的这样。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表