打印

MCC18条件判断出错

[复制链接]
1752|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
motor666|  楼主 | 2007-6-8 15:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的项目用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)
        {
            //这里执行刷新显示代码
        }
}

谁能说说这是什么原因?










沙发
kingpoo| | 2007-6-8 19:34 | 只看该作者

这样试试

DISABLE_INTERRUPT                
if(**2bits.FAA==1)
{
    Frash_DSP(); //显示刷新

else if(**2bits.FEE==1)
{
    Frash_SET(); //设定值刷新
}
ENABLE_INTERRUPT

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

419

帖子

1

粉丝