我的项目用18F2620,程序量超过16K,**2bits.FAA 和 **2bits.FEE 等是自定义的标志位,在主程序里有这么一段:
int main(void) { //前面还有一些代码 //每0.5秒执行下列程序:
if(**2bits.FAA==1) { Frash_DSP(); //显示刷新 } else if(**2bits.FEE==1) { Frash_SET(); //设定值刷新 }
}
现在发现:时常在执行Frash_DSP()时**2bits.FAA并不为1,同样执行Frash_SET()时**2bits.FEE也不为1,即使程序有问题,这个条件判断语句总该能分清该不该执行这个子程序吧,最后不得不在子程序中加二次判断:
void Frash_DSP(void) { if(**2bits.FAA==1) { //这里执行刷新显示代码 } }
谁能说说这是什么原因?
|