不能用51单片机的中止机制来套用MSP430的中止形式。当MSP430有多个中止请求产生时,呼应最高优先级(优先级共有16级)的中止。呼应中止时,MSP430会将不行屏蔽中止操控位SR.GIE复位,即封闭大局中止。因而,一旦MSP430呼应了中止,即便有更高优先级的可屏蔽中止呈现,也不会中止当时正在呼应的中止而去呼应较高优先级的中止。但SR.GIE复位不影响不行屏蔽中止,所以仍可接纳不行屏蔽中止的中止请求。至于怎么实现像51单片机相同的中止嵌套,能够考虑下面的几点:
(1)430默许的是封闭中止嵌套的,除非你在一个中止程序中再次开总中止GIE
(2)当进入中止服务程序时,只需不在中止服务程序中再次开中止,则总中止是封闭的,此刻后边到来的中止不论是比当时中止的优先级高仍是低都不履行;
(3)若在中止A中开了总中止,则能够呼应后来的中止B(不论B的优先级比A高仍是低),B履行完现持续履行。留意:进入中止B生总中止相同也会封闭,假如B中止程序履行时需呼应中止C,则此刻也要开总中止,若不需呼应中止,则不必开中止,B履行完后中跳出中止程序进入A程序时,总中止会主动翻开;
(4)若在中止中开了总中止,后来的中止一起有多个,则会按优先级来履行,即中止优先级只需在多个中止一起到来才起做用!中止服务不履行抢先准则。
(5)关于单源中止,只需呼应中止,体系硬件主动清中止标志位,关于TA/TB定时器的比较/捕获中止,只需拜访TAIV/TBIV,标志位被硬件主动铲除;关于多源中止要手动清标志位,比方P1/P2口中止,要手艺铲除相应的标志,假如在这种中止服务程序中再翻开中止,而在翻开中止前没有清标志,就会有相同的中止不断嵌入,而导致仓库溢出引起复位,所以在这类中止必须先清标志再翻开中止开关。
(2)当进入中止服务程序时,只需不在中止服务程序中再次开中止,则总中止是封闭的,此刻后边到来的中止不论是比当时中止的优先级高仍是低都不履行;
(3)若在中止A中开了总中止,则能够呼应后来的中止B(不论B的优先级比A高仍是低),B履行完现持续履行。留意:进入中止B生总中止相同也会封闭,假如B中止程序履行时需呼应中止C,则此刻也要开总中止,若不需呼应中止,则不必开中止,B履行完后中跳出中止程序进入A程序时,总中止会主动翻开;
(4)若在中止中开了总中止,后来的中止一起有多个,则会按优先级来履行,即中止优先级只需在多个中止一起到来才起做用!中止服务不履行抢先准则。
(5)关于单源中止,只需呼应中止,体系硬件主动清中止标志位,关于TA/TB定时器的比较/捕获中止,只需拜访TAIV/TBIV,标志位被硬件主动铲除;关于多源中止要手动清标志位,比方P1/P2口中止,要手艺铲除相应的标志,假如在这种中止服务程序中再翻开中止,而在翻开中止前没有清标志,就会有相同的中止不断嵌入,而导致仓库溢出引起复位,所以在这类中止必须先清标志再翻开中止开关。