在用msp430F5438A 做项目的时候,我发现MCU莫名其妙的跑偏,开始的时候我觉得肯定是我的程序的问题,但是后来,我跟公司的几个工程师讨论的时候发现这个现象很奇怪。
问题1:在使用单步调试的时候,程序没有问题,但是在全速的时候会出现跑偏(关门狗是关闭的),我关闭的原因在于MCU是不会卡死的,我很奇怪的是的,单步运行和全速运行,结果是不一样,可能是关键处理的地方没有加上延时,所以我加上的1000ns的延时,使用本征函数延时,后来发现,还是不行,有几个参数跑偏,莫名其妙的跑偏,比如,我定义个一个参数
volatile int switch_flag=0;这个数只在 0,2 ,4,6,8,几个范围变化,但是在全速运行的时候,switch_flag会跳到33 ,38,我分析问题之后,无法知道为什么会变成这样,我开始以为是在中断处理中跑偏,但是后来我把程序放在主程序中,还是出现这种现象。
我想问下:出现跑偏的情况,可能有几种,在使用
switch (sw_flag)
{
case :0
break;
case:2
break;
case:4
break;
case6
default:
break;
}
我发现程序在处理的时候,会出现跳入defalut中,然后我一个重要的参数全部都乱跳。现在完全不知道可能的原因在哪,希望得到您的回答,谢谢。