请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430F2011 我有以下ISR用于端口1 .....我遇到了交换机问题。 如果我进入ISR,但仅设置了BI既 可以使用交换机,也可以使用BIT4或BIT5,但如果我进入ISR,BIT4和BIT5都设置了,则交换机跳转到默认位置,而不会执行。 这让我想知道ISR中怎么可能有一个交换机,因为您必须有128个单独的案例语句,一个用于位0到7的每一迭代以及所有组合。 例如,在 以下情况下,P1矢量如何处理(PI1FG = 11万)?
#pragma vector=PORT1_VECTOR __interrupt void inputs(void) { switch( P1IFG ) { case 4: //trigger 1 P1IE &= ~BIT2; P1IFG &= ~BIT2; ISR.trig1 = true; break; case 16: //trigger 2 P1IE &= ~BIT4; P1IFG &= ~BIT4; ISR.trig2 = true; break; case 32: //debug mode enable debounce P1IE &= ~BIT5; P1IES ^= BIT5; P1IFG &= ~BIT5; CCR0 = (TAR + DEBOUNCE); //~~50ms CCTL0 &= ~CCIFG; CCTL0 |= CCIE; break; default: break; } LPM3_EXIT; }