OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5828|回复: 14

原子哥, 请进一下,关于红外解码

[复制链接]

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
发表于 2015-3-19 20:51:59 | 显示全部楼层 |阅读模式
5金钱
最近在学红外相关的知识, 自己写了一个用51板子解码一个遥控器的程序, 测了一下键码用1602显示, 发现和用32的测出的不一样,
于是又上网搜了一个51的程序, 结果和我自己写的测的键值是一样的, 换一个遥控器试了一下(我把例程的检测ID的哪项取消了), 51和32测的还是不一样,32的寄存器和库函数版的都测了, 原子的例子不会有问题, 51的程序也测试了两个, 应该也不会错啊, 而且都是十进制显示的, 结果就是不一样!  
原子哥送的遥控器两个板子测得用户码都是0, 键码不一样, 另一个遥控器测得用户码和键码都不一样, 两个51的程序分别测得完全一样.. 
请求原子哥指点一下..

最佳答案

查看完整内容[请看2#楼]

回复【10楼】myb13149251: --------------------------------- 貌似我们的程序是和标准协议反的. 有网友指出来过,不过不影响使用. 你一定要纠结,那就改过来吧.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-19 20:52:00 | 显示全部楼层
回复【10楼】myb13149251:
---------------------------------
貌似我们的程序是和标准协议反的.
有网友指出来过,不过不影响使用.
你一定要纠结,那就改过来吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5141
金钱
5141
注册时间
2014-8-26
在线时间
1317 小时
发表于 2015-3-19 20:59:33 | 显示全部楼层
有可能遥控器不一样哦
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
 楼主| 发表于 2015-3-19 21:04:06 | 显示全部楼层
回复【2楼】login_FAE:
---------------------------------
用的是同一个遥控器啊, 分别对着两个开发板的接收管发射.
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-19 22:26:47 | 显示全部楼层
说明解码思路不一样
0也可以是255的,这个看你怎么看问题了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
 楼主| 发表于 2015-3-20 08:54:25 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
还是不明白, 比如一个遥控器的用户码32测得为2,用户反码为253,  51测得却是64, 反码为191 , 都是采用NEC协议的啊, 引导码: 9ms低, 4.5ms高, 1:560us低+1680us高,  0: 560us低+560us高,  原子哥能说具体一点吗?
回复

使用道具 举报

15

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2013-11-18
在线时间
4 小时
发表于 2015-3-20 09:27:58 | 显示全部楼层
这个还是程序里规定了吧,仔细分析分析两个程序
回复

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2015-3-20 09:38:07 | 显示全部楼层
你还要注意51是大端32是小端
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
 楼主| 发表于 2015-3-20 14:10:42 | 显示全部楼层
回复【7楼】as564335sa:
---------------------------------
对了, 应该就是这个原因,0100 0000 1011 1111 每位倒过来正好是253 02, 谢谢。。
回复

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2015-3-20 14:38:12 | 显示全部楼层
回复【8楼】myb13149251:
---------------------------------
每一位的话应该是数据接收处理存储的时候从高位开始还是低位开始,大小端是相对字节说的,你说的这个应该是遥控先发的高位,你收到时保存在低位了,就反了
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
 楼主| 发表于 2015-3-20 23:20:27 | 显示全部楼层
_________________________________________________________________________
貌似是这样的, 麻烦原子哥看一下是不是程序的问题, nec是先低位后高位, 程序这里依次把接收到的每一位存入RmtRec, 


取出来的时候顺序是颠倒的, 低位都变成了高位, 所以导致这个现象, 0x00和0xff是不受影响的..


_____________________________________________________________________________________________
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
 楼主| 发表于 2015-3-20 23:21:26 | 显示全部楼层
回复【9楼】as564335sa:
---------------------------------
确实大小端是相对字节的,  查了一下, 许多博客文章说c51无所谓大小端, 是编译器的问题, 才表现出的大小端..此处不是大小端引起的
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
 楼主| 发表于 2015-3-20 23:23:58 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥看一下, 是不是下面的问题..
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2015-1-18
在线时间
17 小时
 楼主| 发表于 2015-3-20 23:28:30 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
找到问题了就好, 没必要纠结,因为老师交的任务需要32和51统一一下红外的编码.所以才要搞清楚的.. 谢谢原子哥和朋友们的热心解答,
回复

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2015-3-21 08:31:48 | 显示全部楼层
回复【11楼】myb13149251:
---------------------------------
不是C51无所谓大小端,而是大小端是相对十六位以上数据而言,这个意思是如果吧十六位数据存到51中那么是高位在前,存到32中是低位再前的,这个不是编译器决定的吧
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 19:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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