请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430G2553 大家好,
我正在开发一个软件,其中我将有一个2主I2C和一个从I2C通信(MSP上的软件i2c)。
为了处理两个主中继器之间可能发生的冲突,MSP正在等待另一个主中继器发送启动条件(中断高/低):然后启动计时器,以允许另一个主中继器完成通信,通信时间不会超过1秒。
似乎很简单,但是我正努力处理中断:事实上,我一直在TI_TRAP中,没有办法输入两次中断。
我的代码不是下面的代码,但所有与中断相关的设置都在:
MAIN (){
P1IE || BIT1;// WFP 1.3 interrupt enabled
P1IFG &=~BIT1;// WFP 1.3 IFG cleared
P1IES || BIT1
__ENABLE_INTERRUPT ();
while (1)
{
__bis_sr_register (CPUOFF + GIE); //输入带中断的LPM0
}
#pragma vector=Port1_vector
__interrupt void Port_1(void)
{
__bis_sr_register(BIT0&GIE);//禁用中断的LPM0
//////////////// 如果信号是PWM,则下一个"中断"将存储在某种队列中?////////////////
P1IFG &=~BIT1;//已清除WFP 1.1 IFG
_delay_cycles (320万);//因此,另一个主控制器完成其必须完成的操作
function_read();
__bis_sr_register(BIT1&GIE);//启用中断的LPM0
}
事实上,我们正等待SDA线的低水平。 我是否忘记了或误了某些东西,是什么使我的软件落在__TI_TRAP_STHG中? 我忘了说我们输入一次中断。
提前感谢!
丹尼尔