你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

iar选择不优化,但编译后一部分代码没有对应的汇编代码

[复制链接]
iyumi 提问时间:2018-8-30 09:28 /
阅读主题, 点击返回1楼
收藏 评论11 发布时间:2018-8-30 09:28
11个回答
tyhjrwx2011 回答时间:2018-8-30 20:41:54
iyumi 发表于 2018-8-30 14:25
ir_revdata确认改变了,我按了两个红外按键,得到了不同的值

if(addr_l==(~addr_h))

仔细看了下写法
C语言语法,这句话,应该永远不成立,所以编译器自动过滤了无效的代码段
iyumi 回答时间:2018-8-30 22:11:11
本帖最后由 iyumi 于 2018-8-31 10:06 编辑
tyhjrwx2011 发表于 2018-8-30 20:41
if(addr_l==(~addr_h))

仔细看了下写法

大神,牛逼啊!!我刚把这个问题解决了,准备上来结贴,就看到你给出正确答案了,确实是这样的,我现在改成这样了:

        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条件里不取反,这样就没有问题

大神,再具体说一下,这个条件有什么问题吗,为什么永远不成立?

12

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版