MSP430F5438中断函数两种编写方法
扫描二维码
随时随地手机看文章
以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方法,而本人则更喜欢第二种——查询标志位。总之两种方法的最终效果都一样。