行人匆匆
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 133 点
下载积分: 1006 分
在线时间: 7(小时)
注册时间: 2016-11-28
最后登录: 2021-09-10
查看行人匆匆的 主题 / 回贴
楼主  发表于: 2017-04-28 09:18
我在编程的时候,碰到一个问题,需要判断一个16位寄存器里面m位,是否有两个1,想了下不好怎么实现,看看论坛朋友有没有好方法简单点的谢谢!
worker02
级别: 略有小成
精华主题: 0
发帖数量: 82 个
工控威望: 247 点
下载积分: 615 分
在线时间: 255(小时)
注册时间: 2008-08-01
最后登录: 2024-03-26
查看worker02的 主题 / 回贴
1楼  发表于: 2017-08-30 11:43
FUNCTION FC1200 : VOID
VAR_TEMP
    I,A:INT;

END_VAR
VAR_INPUT
    ByteN:INT;
END_VAR  
VAR_OUTPUT
    B:BOOL;
END_VAR;
I:=0;
A:=0;
FOR I:=0 TO 15 DO
    IF MX[ByteN,I]THEN
        A:=A+1;
   END_IF;
END_FOR;
IF a>=2 THEN
    B:=true;
else
  B:=false;
    END_IF;

END_FUNCTION
[ 此帖被worker02在2017-08-30 13:58重新编辑 ]