MSP430F5438中斷函數(shù)兩種編寫方法
以USCI0為例,說明該兩種不同方法。
1.switch-case方法
#pragmavector=USCI_A0_VECTOR
__interruptvoidUSCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
case0:
break;
case2://接收中斷
//dosomethinghere
break;
case4://發(fā)送中斷
//dosomethinghere
break;
default:
break;
}
}
2.查詢標志為方法
#pragmavector=USCI_A0_VECTOR
__interruptvoidUSCI_A0_ISR(void)
{
//接收中斷
if((UCA0IFG&UCRXIFG)!=0)
{
}
//發(fā)送中斷
if((UCA0IFG&UCTXIFG)!=0)
{
}
}
總結(jié)
TI的官方例程都是用switch-case方法,而本人則更喜歡第二種——查詢標志位??傊畠煞N方法的最終效果都一樣。