本帖最后由 秋雨 于 2011-8-6 00:24 编辑
16F886+MAPLAB+PICC+ICD2仿真
采用内部4M晶体,中断开了TMR0 TMR1 和RB口中断
程序总是跑飞或乱跑,差了很多遍找不到问题。。。然后我在程序里面随便加了一个判断语句,发现总是不对
定义了一个无用的变量
unsigned char ERR_CODE;
加的语句如下
ERR_CODE=1;
if(ERR_CODE>100)
{
asm("nop");
}
这个变量别的地方都没有用到。结果ICD2仿真发现,程序居然能跑到asm("nop")这一句。。。此时发现STATUS不对。。为00011011或者 0001111。。。
差了3天,找不到问题,以前数组超限会出乱跑的问题,这次查了没有发现超数组容量的。
请教一下,各位遇到的程序乱跑的问题大都由什么原因引起的呢? |