×
嵌入式 > 技术百科 > 详情

MSP430F5438中断函数两种编写方法

发布时间:2020-06-02 发布时间:
|

以USCI0为例,说明该两种不同方法。

1.switch-case方法


  1. #pragma vector=USCI_A0_VECTOR  

  2. __interrupt void USCI_A0_ISR(void)  

  3. {  

  4.     switch(__even_in_range(UCA0IV,4))  

  5.     {  

  6.     case 0:  

  7.             break;  

  8.     case 2:                       // 接收中断  

  9.             // do something here  

  10.             break;  

  11.     case 4:                       // 发送中断  

  12.             // do something here  

  13.             break;                  

  14.     default:   

  15.             break;  

  16.     }  

  17. }  



2.查询标志为方法


  1. #pragma vector=USCI_A0_VECTOR  

  2. __interrupt void USCI_A0_ISR(void)  

  3. {  

  4.   // 接收中断  

  5.   if( ( UCA0IFG & UCRXIFG ) != 0 )  

  6.   {  

  7.       

  8.   }  

  9.   // 发送中断  

  10.   if( ( UCA0IFG & UCTXIFG ) != 0 )  

  11.   {  

  12.   

  13.   }  

  14. }  



总结

TI的官方例程都是用switch-case方法,而本人则更喜欢第二种——查询标志位。总之两种方法的最终效果都一样。


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MUR105G的技术参数