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