msp430的中断优先级和中断嵌套(及容易理解错误的说明)

发布者:大泉人家最新更新时间:2020-02-06 来源: eefocus关键字:msp430  中断优先级  中断嵌套 手机看文章 扫描二维码
随时随地手机看文章

msp430的中断优先级和中断嵌套


MSP430的中断优先级按所在的向量的大小排列,中断向量地址越高优先级就越大,但是默认的MSP430是不能中断嵌套的,要想在执行某一中断时能够响应更高优先级的中断,需要在低优先级的中断程序中手动打开全局中断便能位,因为在进入中断服务子程序时全局中断便能位被清零,即禁止响应其它中断。


msp430的指令中,DINT和EINT分别指关和开所有中断,也就是包涵P1IE、P2IE、WDTIE、TAIE、TBIE、ADC12IE、串口中断允许的所有中断允许位为“0”和为“1”。


当同时有多个中断来的时候才有优先级的考虑(优先级顺序可查看向量表)

有中断响应以后自动关闭总中断,这个时候即使来更高优先级的中断都不会响应

要中断嵌套的话,就必须在中断中打开总中断

msp430的指令中,DINT和EINT分别指关和开所有中断,也就是包涵P1IE、P2IE、WDTIE、TAIE、TBIE、ADC12IE、串口中断允许的所有中断允许位为“0”和为“1”。


实现中断嵌套需要注意以下几点:

1)430默认的是关闭中断嵌套的,除非你在一个中断程序中再次开总中断EINT;


2)当进入中断程序时,只要不在中断中再次开中断,则总中断是关闭的,此时来中断不管是比当前中断的优先级高还是低都不执行;


3)若在中断A中开了总中断,则可以响应后来的中断B(不管B的优先级比A高还是低),B执行完再继续执行A。注意:进入中断B后总中断同样也会关闭,如 果B中断程序执行时需响应中断C,则此时也要开总中断,若不需响应中断,则不用开中断,B执行完后跳出中断程序进入A程序时,总中断会自动打开;


4)若在中断中开了总中断,后来的中断同时有多个,则会按优先级来执行,即中断优先级只有在多个中断同时到来时才起做用!中断服务不执行抢先原则。


5)对于单源中断,只要响应中断,系统硬件自动清中断标志位,对于TA/TB定时器的比较/捕获中断,只要访问TAIV/TBIV,标志位倍被自动清除;


对于多源中断(多个中断源共用一个中断向量)要手动清标志位,比如P1/P2口中断,要手工清除相应的标志,如果在这种中断用"EINT();"开中断,而在打开中断前没有清标志,就会 有相同的中断不断嵌入,而导致堆栈溢出引起复位,所以在这类中断中必须先清标志再打开中断开关.


特别注意:


正是这段说明容易让人上当。


MSP430中断的优先级与其它CPU的中断的优先级的概念不是一回事。

1、当同时有多个中断来的时候才有优先级。其实这个时候很少发生。

2、有中断响应以后自动关闭总中断。这时候,谁也别想再中断了,哪怕你是天王老子。

3、你打开总中断,同样晕菜,谁都可以打扰你的,烦不烦。

关键字:msp430  中断优先级  中断嵌套 引用地址:msp430的中断优先级和中断嵌套(及容易理解错误的说明)

上一篇:MSP430单片机外部中断
下一篇:msp430 按键 中断 轮询

推荐阅读最新更新时间:2024-11-22 07:46

使用Energia开发MSP430 LAUNCHPAD学习笔记1--LED闪烁
材料: l MSP430 LAUNCHPAD x 1 l M430G2452芯片 (有的套件中是M430G2553芯片) 实验目的:让MSP430 LAUNCHPAD的P1.0和P1.6 交替闪烁 下面开始打开Energia编写程序。 第一步:安装并选择MSP430G2芯片的型号 先将G2452芯片安装在芯片座上,将MSP430 LAUNCHPAD通过USB线插上电脑,接着选择MSP430G2芯片的型号G2452,如下图: 特别提示:有的人拿到的launchpad套件中不是G2452芯片,而是G2553芯片,这儿只要根据芯片型号选择相对应的选项即可。 第二步:开发软件的基本设置 首先需要确认已经安装了LaunchP
[单片机]
使用Energia开发<font color='red'>MSP430</font> LAUNCHPAD学习笔记1--LED闪烁
msp430入门学习10
基于msp430f160的闪烁灯,代码如下: 1 #include msp430f169.h 2 3 #define CPU_F ((double)8000000) //定义一个常数8000_000 4 //#define CPU_F ((double)32768) //外部低频晶振32.768KHZ 5 #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/8000000.0)) 6 #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/8000.0)) 7 8 /** 9 * ma
[单片机]
MSP430单片机按键程序
MSP 430 单片机 按键程序 #include msp430x14x.h #include key.h void Init_Port(void) { //将P1口所有的管脚在初始化的时候设置为输入方式 P1DIR = 0; //将P1口所有的管脚设置为一般I/O口 P1SEL = 0; // 将P1.4 P1.5 P1.6 P1.7设置为输出方向 P1DIR |= BIT4; P1DIR |= BIT5; P1DIR |= BIT6; P1DIR |= BIT7; //先输出低 电平 P1OUT = 0x00; // 将中断寄存器清零 P1IE = 0;
[单片机]
基于MSP430F5438A的OV7670简单驱动程序
作为一个新手,因为课程设计要求,接触到了OV7670。因为课程设计要求使用MSP430F5438A驱动OV7670,而网上大多数都是使用STM32进行驱动。上网查找了很多资料,也仔细看过网上大佬发的相关寄存器的帖子,最后成功使用430单片机完成了设计。本着来源于网络,回馈于网络的原则,在此介绍一下,自己使用OV7670的一点经验。水平有限,偏颇之处,还请包涵! 首先简单的介绍一下所使用的摄像头OV7670。 OV7670是OV(OmniVision)公司生产的一颗1/6寸的CMOS VGA图像传感器。该传感器体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。通过SCCB 总线控制,可以输出整帧、子采样、取窗口等方
[单片机]
基于<font color='red'>MSP430</font>F5438A的OV7670简单驱动程序
利用MSP430G2553搭建蓝牙小车
1. 小车硬件 1.1 机械部分 1).直流电机(黄色DC3V-6V)2个; 2).亚克力板; 3).万向轮; 4).用于装配的螺钉与支撑若干。 1.2 电气部分 1).主控MSP430G2553 2).蓝牙模块HC05 3).DC转DC; 4).电机驱动模块TB6612; 5).手机端的蓝牙调试器。 因为电气连接没有画图,所以对于具体的连接说明,也就不再说明了。这部分也确实比较简单。 2. 小车软件 2.1车体上软件 电机驱动头文件: #include msp430G2553.h #define uint unsigned int #define CPU_F ((double)
[单片机]
利用<font color='red'>MSP430</font>G2553搭建蓝牙小车
MSP430教程11:MSP430单片机低功耗结构
当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1: 复位,使能SMCLK;置位,禁止SMCLK。 SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且L
[单片机]
MSP430程序库<十一>定时器TA的PWM输出
定时器是单片机常用的其本设备,用来产生精确计时或是其他功能;msp430的定时器不仅可以完成精确定时,还能产生PWM波形输出,和捕获时刻值(上升沿或是下降沿到来的时候)。这里完成一个比较通用的PWM波形产生程序。 硬件介绍: MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。 MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA有三个模块,CCR0-CCR2;TB含有CCR0-CCR6
[单片机]
<font color='red'>MSP430</font>程序库<十一>定时器TA的PWM输出
TI推出最新MSP430TM 微控制器
日前,德州仪器 (TI) 宣布推出 MSP430F563x 和 MSP430F663x 微控制器系列,为其超低功耗 16 位微控制器产品线增加更多性能与特性。现在,利用这些微控制器的更大内存、显示容量和模拟外设,开发人员可快速实现高精度测量及连接。F563x 和 F663x 器件可满足如血糖仪、脉冲血氧仪、血压监测仪、心电图 (ECG)、运动监测仪和传感器集线器等便携式测量应用的需求。另外,诸如公用事业计量仪表、远程感测及恒温器等需要统一用户界面的家庭自动化和工业应用,也可得益于MSP430 系列微控制器的超低功耗与高性能特性。并且,作为 MSP430 产品线的一部分,F563x 和 F663x 系列可扩展至整个 MSP430F5
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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