普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 6062|回复: 1

[已解决] 红外遥控 求助

[复制链接]

10

主题

44

帖子

278

积分

中级会员

Rank: 3Rank: 3

积分
278
发表于 2020-11-23 17:35:29 | 显示全部楼层 |阅读模式
5金钱
void main()
{       
        IrInit();
        while(1)
        {       
                DisplayData[0] = smgduan[IrValue[1]/16];
                DisplayData[1] = smgduan[IrValue[1]%16];
                DisplayData[2] = smgduan[IrValue[2]/16];
                DisplayData[3] = smgduan[IrValue[2]%16];
                DisplayData[6] = smgduan[16];
                DigDisplay();               
        }               
}

求助 smgduan[IrValue[1]/16];    代码中16 代表什么意思      IrValue[1] 数组中保存的不是0101 0101 的二进制数据么

刚开始接触 求老师傅指导

最佳答案

首先:你给出的这部分代码,是给显示缓存赋值。 第二:不知你是否已经知道 smgduan【】就是保存接收到的红外编码,这个码是8位的。 第三:结合上述内容就可以这样思考: 1、要显示的这个数据,用什么方式显示?是 ...

回复

使用道具 举报

20

主题

1344

帖子

8379

积分

论坛元老

Rank: 8Rank: 8

积分
8379
发表于 2020-11-24 08:09:12 | 显示全部楼层
首先:你给出的这部分代码,是给显示缓存赋值。
第二:不知你是否已经知道 smgduan【】就是保存接收到的红外编码,这个码是8位的。
第三:结合上述内容就可以这样思考:
1、要显示的这个数据,用什么方式显示?是二进制,还是十进制,或是十六进制?这个16,就是十六进制
2、/16,就是取数据的高四位,%16就是取数据的低四位
3、如果想用十进制显示,那么,应该是这样:
因为最大255,所以要三条语句才能完成显示:/100、/10、%10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-25 15:55 , Processed in 0.089816 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表