[STM32F1] 老是执行 WRN_IDL()

[复制链接]
 楼主| morrisk 发表于 2020-12-1 23:23 | 显示全部楼层 |阅读模式
WHILE(1)

{
       if(b_I1A &&b_I1B&& b_I2A && b_I2B)
      {
            if((b_A1A==0)||(b_A1B==0))
             {
               ALM();
               }
             else
            {
                    if((b_W1A==0)||(b_W1B==0))
                      {
                       WRN();
                          }
                         else
                        RUN();
                 }
   }
        else  
        {
             if((b_A1A==0)||(b_A1B==0))
                {
               ALM_IDL();
                 }
              else
             {
                          if((b_W1A==0)||(b_W1B==0))
                                  {
                               WRN_IDL();
                                }
                             else
                            RUN_IDL();
               }
   }

}
huwr 发表于 2020-12-1 23:30 | 显示全部楼层

b_I1A等表示空闲,
b_W1A等表示警告,
b_A1A等表示报警。
chenho 发表于 2020-12-1 23:35 | 显示全部楼层
多台设备,现在要有报警出报警ALM(),没报警有警告出警告WRN(),没报警和警告出正常运行RUN();
pengf 发表于 2020-12-1 23:38 | 显示全部楼层
总执行那个肯定是满足执行它的条件:b_I1A ,b_I1B,_I2A ,b_I2B不全为1;b_A1A和b_A1B都为1;
b_W1A,b_W1B中有一个为0。
pangb 发表于 2020-12-1 23:45 | 显示全部楼层
我感觉你的第一层if else语句条件存在语法错误,条件不明确
zyf部长 发表于 2020-12-1 23:48 | 显示全部楼层
那么只能执行else语句了!
llia 发表于 2020-12-1 23:51 | 显示全部楼层
if((b_W1A==0)||(b_W1B==0)) { WRN_IDL();}看下你的条件的吧
wangzsa 发表于 2020-12-1 23:54 | 显示全部楼层
这个也是根据先后顺序判断的
happy_10 发表于 2020-12-1 23:57 | 显示全部楼层

你这样的逻辑都是怎么实现的
硬件电路的实现都没有
juventus9554 发表于 2020-12-2 18:47 | 显示全部楼层
这个就看你给设置的输出条件的
renyaq 发表于 2020-12-2 18:52 | 显示全部楼层
若是IO中断输入的,检查下你的中断设置的吧
liuzaiy 发表于 2020-12-2 18:56 | 显示全部楼层
这个一步步的检查你的条件判断的吧
kangzj 发表于 2020-12-2 19:00 | 显示全部楼层

时钟起振了吗
gongche 发表于 2020-12-2 19:03 | 显示全部楼层
是不是硬件上没有满足条件呢啊
zhuww 发表于 2020-12-2 19:10 | 显示全部楼层
硬件问题的概率很高
 楼主| morrisk 发表于 2020-12-2 19:14 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

6879

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

701

主题

6879

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部