MSP430的中止优先级按地点的向量的巨细摆放,中止向量地址越高优先级就越大,可是默许的MSP430是不能中止嵌套的,要想在履行某一中止时能够呼应更高优先级的中止,需求在低优先级的中止程序中手动翻开大局中止便能位,由于在进入中止服务子程序时大局中止便能位被清零,即制止呼应其它中止。
当一起有多个中止来的时分才有优先级的考虑(优先级次序可查看向量表)
有中止呼应今后主动封闭总中止,这个时分即便来更高优先级的中止都不会呼应
要中止嵌套的话,就必须在中止中翻开总中止
msp430的指令中,DINT和EINT别离指关和开一切中止,也便是包容P1IE、P2IE、WDTIE、TAIE、TBIE、ADC12IE、串口中止答应的一切中止答应位为“0”和为“1”。
完成中止嵌套需求留意以下几点:
1)430默许的是封闭中止嵌套的,除非你在一个中止程序中再次开总中止EINT;
2)当进入中止程序时,只需不在中止中再次开中止,则总中止是封闭的,此刻来中止不论是比当时中止的优先级高仍是低都不履行;
3)若在中止A中开了总中止,则能够呼应后来的中止B(不论B的优先级比A高仍是低),B履行完再持续履行A。留意:进入中止B后总中止相同也会封闭,如
4)若在中止中开了总中止,后来的中止一起有多个,则会按优先级来履行,即中止优先级只需在多个中止一起到来时才起做用!中止服务不履行抢先准则。
5)关于单源中止,只需呼应中止,体系硬件主动清中止标志位,关于TA/TB定时器的比较/捕获中止,只需拜访TAIV/TBIV,标志位倍被主动铲除;
关于多源中止(多个中止源共用一个中止向量)要手动清标志位,比方P1/P2口中止,要手艺铲除相应的标志,如果在这种中止用”EINT();”开中止,而在翻开中止前没有清标志,就会
特别留意:
正是这段阐明简单让人受骗。
MSP430中止的优先级与其它CPU的中止的优先级的概念不是一回事。
1、当一起有多个中止来的时分才有优先级。其实这个时分很少产生。
2、有中止呼应今后主动封闭总中止。这时分,谁也别想再中止了,哪怕你是天王老子。
3、你翻开总中止,相同晕菜,谁都能够打扰你的,烦不烦。