以USCI0为例,阐明该两种不同办法。
1.switch-case办法
#pragmavector=USCI_A0_VECTOR
__interruptvoidUSCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
case0:
break;
case2://接纳中止
//dosomethinghere
break;
case4://发送中止
//dosomethinghere
break;
default:
break;
}
}
2.查询标志为办法
#pragmavector=USCI_A0_VECTOR
__interruptvoidUSCI_A0_ISR(void)
{
//接纳中止
if((UCA0IFG&UCRXIFG)!=0)
{
}
//发送中止
if((UCA0IFG&UCTXIFG)!=0)
{
}
}
总结
TI的官方例程都是用switch-case办法,而自己则更喜爱第二种——查询标志位。总归两种办法的终究作用都相同。