使用的是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:
没有被注释掉。谢谢