TI中文支持网
TI专业的中文技术问题搜集分享网站

DSP F2812 进入非法中断问题

使用的是F2812,CCS3.3,自己开发的板子,其他功能完好
Uint32 ABC( )
~~  
{
~~  
if(strcmp(s,"STOP")==0)// 比较s数组和STOP字符串是否相同:若相同进入下一步
{EALLOW;XIntruptRegs.XNMICR.bit.SELECT=0; //定时器1连接到XINT13,中断不再被响应EDIS;goto loop;}
memset(s,0,20*sizeof(Uint32)); // s数组和STOP字符串不同,将s数组清零
loop:return(0);
}
以上为程序段。在进入此程序段之间,已经将中断XINT13打开,且只有在这个中断产生了之后,才能进入这段程序。
程序过程为:s数组与STOP字符串进行比较,如果完全相同,进入括号内;若果不是完全相同,将s数组清零,然后等待下一个S数组的到来,再进行比较。
括号内的内容为:关闭中断XINT13,跳到loop中,返回0到别的子程序中。

现在的情况是:

输入STOP到s数组中,进入到程序段后,经过比较,能进入括号中,跳转能return(0),返回0到别的子程序中;

输入非STOP到s数组中,进入到程序段后,经过比较,不能进入括号中,s数组被清零。再次输入STOP到s数组中,进入到程序段后,经过比较,能进入括号中,跳转能return(0),但程序此时跑飞,进入interrupt void ILLEGAL_ISR(void);

请问问题出在哪里了?

mangui zhang:

你好   从你提供的代码看     是不是有一个}被注释掉了

 

if(strcmp(s,"STOP")==0)   // 比较s数组和STOP字符串是否相同:若相同进入下一步      {     EALLOW;
    XIntruptRegs.XNMICR.bit.SELECT=0; //定时器1连接到XINT13,中断不再被响应     EDIS;
    goto loop;
}

使用的是F2812,CCS3.3,自己开发的板子,其他功能完好
Uint32 ABC( )
~~  
{
~~  
if(strcmp(s,"STOP")==0)// 比较s数组和STOP字符串是否相同:若相同进入下一步
{EALLOW;XIntruptRegs.XNMICR.bit.SELECT=0; //定时器1连接到XINT13,中断不再被响应EDIS;goto loop;}
memset(s,0,20*sizeof(Uint32)); // s数组和STOP字符串不同,将s数组清零
loop:return(0);
}
以上为程序段。在进入此程序段之间,已经将中断XINT13打开,且只有在这个中断产生了之后,才能进入这段程序。
程序过程为:s数组与STOP字符串进行比较,如果完全相同,进入括号内;若果不是完全相同,将s数组清零,然后等待下一个S数组的到来,再进行比较。
括号内的内容为:关闭中断XINT13,跳到loop中,返回0到别的子程序中。

现在的情况是:

输入STOP到s数组中,进入到程序段后,经过比较,能进入括号中,跳转能return(0),返回0到别的子程序中;

输入非STOP到s数组中,进入到程序段后,经过比较,不能进入括号中,s数组被清零。再次输入STOP到s数组中,进入到程序段后,经过比较,能进入括号中,跳转能return(0),但程序此时跑飞,进入interrupt void ILLEGAL_ISR(void);

请问问题出在哪里了?

song zhao1:

回复 mangui zhang:

没有被注释掉。谢谢

赞(0)
未经允许不得转载:TI中文支持网 » DSP F2812 进入非法中断问题
分享到: 更多 (0)