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;
- }
- }
[color=rgb(51, 102, 153) !important]复制代码
[color=rgb(51, 102, 153) !important]
2.查询标志为方法
- #pragma vector=USCI_A0_VECTOR
- __interrupt void USCI_A0_ISR(void)
- {
- // 接收中断
- if( ( UCA0IFG & UCRXIFG ) != 0 )
- {
- }
- // 发送中断
- if( ( UCA0IFG & UCTXIFG ) != 0 )
- {
- }
- }
[color=rgb(51, 102, 153) !important]复制代码
总结
TI的官方例程都是用switch-case方法,总之两种方法的最终效果都一样。
|