历史上的今天
今天是:2025年02月06日(星期四)
2020年02月06日 | MSP430F5438中断函数两种编写方法
2020-02-06 来源:eefocus
以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方法,而本人则更喜欢第二种——查询标志位。总之两种方法的最终效果都一样。
上一篇:msp430 按键 中断 轮询
下一篇:msp430的pcb设计小结
史海拾趣
|
在调上网的时候,新建一个连接的时候,点击配置然后connmc.exe挂掉了。经检查,发现是发的命令(CGQREQ,CGQMIN)返回的数据是空的导致的。但是我手动设置一个,然后在去查也是空,请问这里要如果处理? 我用的上网的方式是用一个虚拟出两个串口, ...… 查看全部问答> |
|
哪位老大帮帮忙,因为有几个接口和JTAG重了,所以我在程序中加了GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENA ...… 查看全部问答> |
|
#include <stdio.h> #include<string.h> void main(void) { char s[20]; strcpy(s, \\"Hello! Turbo C2.0\\ ...… 查看全部问答> |
|
实际设计中,用到的TI器件还是蛮多的,像各种DSP,模拟器件等。德州仪器(TI)通过多种不同的处理技术提供了宽范围的运算放大器产品,在实际应用中非常广泛,其类型包括了高精度、低功率、低电压的产品。TI还开发了业界最大 ...… 查看全部问答> |
|
我想学学430单片机自带的IIC模块使用,现在编了段小程序,可是运行不正确,程序如下,问题在最后面。 //初始化IIC模块 UCB0CTL1 |= UCSWRST; UCB0CTL0 |=UCMST+UCMODE1+UCMODE0+UCSYNC; // I2C Master, syn ...… 查看全部问答> |




