本帖最后由 gdszzyq 于 2019-11-20 11:12 编辑
有一段代码在以前的设备中都运行正常,今天在一台设备也是类似的写法却出现问题,程序没有跑死,也没有复位,但第三代码无法被执行,third没被赋值为1,也就是说 if(count==50)first=1;没执行,导致 third=1;也没执行,难道count这个变量从49直接跳过50到51了?count的值为101,second这个变量一直在累加,说明程序正常运行,百思不得其解。初步怀疑是供电不稳定导致的,我也尝试瞬断供电也模拟出这种情况,要说电压过低MCU也会复位啊,但它又没有复位,我的程序开启了低电压检测,但在中断里只是保存一些不相关的数据而已,为何count累加时会跳过50这个值呢?而同样的写法在别的设备上都没问题,用的都是一样的板子。请大家帮忙分析一下是什么原因,谢谢了。
u8 count,first,second,third;
int main(void)
{
count=0;
first=0;
second=0;
third=0;
while(1)
{
if(count==50)first=1;
if(count>100)
{
second+=1;
}
else count++;
//第三段代码
if(first==1)
{
third=1;
}
......
}
}
|