你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
iyumi 发表于 2018-8-30 14:25 ir_revdata确认改变了,我按了两个红外按键,得到了不同的值
tyhjrwx2011 发表于 2018-8-30 20:41 if(addr_l==(~addr_h)) 仔细看了下写法
if(addr_l==(~addr_h))
仔细看了下写法
C语言语法,这句话,应该永远不成立,所以编译器自动过滤了无效的代码段
大神,牛逼啊!!我刚把这个问题解决了,准备上来结贴,就看到你给出正确答案了,确实是这样的,我现在改成这样了:
addr_l = (u8)(ir_revdata>>24);
addr_h = ~(u8)(ir_revdata>>16);
//if(addr_l==(~data_h)&&addr_l==EQ_ID)//EQ_ID,设备ID
if(addr_l==addr_h)
{
data_l = (u8)(ir_revdata>>8);
data_h = ~(u8)ir_revdata;
if(data_l==data_h)
{
...
}
}
把取反的操作放到前边去,if条件里不取反,这样就没有问题
大神,再具体说一下,这个条件有什么问题吗,为什么永远不成立?