您的位置 首页 编程

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

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、你翻开总中止,相同晕菜,谁都能够打扰你的,烦不烦。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/259021.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部