`
hulianwang2014
  • 浏览: 694126 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

MSP430F5438中断函数两种编写方法

 
阅读更多

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

1.switch-case方法

#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
    switch(__even_in_range(UCA0IV,4))
    {
    case 0:
            break;
    case 2:                       // 接收中断
            // do something here
            break;
    case 4:                       // 发送中断
            // do something here
            break;                
    default: 
            break;
    }
}

2.查询标志为方法

#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
  // 接收中断
  if( ( UCA0IFG & UCRXIFG ) != 0 )
  {
    
  }
  // 发送中断
  if( ( UCA0IFG & UCTXIFG ) != 0 )
  {

  }
}

总结

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics