OpenEdv-开源电子网

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

红外实验中断逻辑 怎么感觉 和NEC低位先行冲突

[复制链接]

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2020-10-18
在线时间
22 小时
发表于 2021-1-16 00:11:29 | 显示全部楼层 |阅读模式
40金钱
本帖最后由 卡洛尔员工 于 2021-1-16 00:18 编辑

这个里面的左移一位,但是NEC协议是低位先行,如果按照这个逻辑。假如:我发送的是POWER:162(1010 0010),低位先行,那么顺序发送就是 0100 0101。中断里面
判断出来这个第一位是0:先左移然后或上0,那么就是0; 然后判断出第二数据是1:原数据先左移再或上1,那么两次就是01;以此类推,最后就是0100 0101,这就完全不是
原来的数据1010 0010(162)了,反而是69了。有大手子能帮帮我看看吗,搞了3个小时就是没弄明白,怎么读出原来的数值的。
                                if(RmtSta&0X80)//接收到了引导码(分析上一次接收,只有接收到引导码才接受下面的)
                                {
                                        //按照低位在前的规则
                                        if(Dval>300&&Dval<800)                        //560为标准值,560us
                                        {
                                                RmtRec<<=1;                                        //左移一位.
                                                RmtRec|=0;                                        //接收到0           
                                        }else if(Dval>1400&&Dval<1800)        //1680为标准值,1680us   
                                        {
                                                RmtRec<<=1;                                        //左移一位.
                                                RmtRec|=1;                                        //接收到1
                                        }else if(Dval>2200&&Dval<2600)        //得到按键键值增加的信息 2500为标准值2.5ms
                                        {
                                                RmtCnt++;                                         //按键次数增加1次
                                                RmtSta&=0XF0;                                //清空计时器               
                                        }
                                 }
                                else if(Dval>4200&&Dval<4700)                //(否则就是接收引导码了)4500为标准值4.5ms
                                {
                                        RmtSta|=1<<7;                                        //标记成功接收到了引导码
                                        RmtCnt=0;                                                //清除按键次数计数器
                                }
                                                

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2020-10-18
在线时间
22 小时
 楼主| 发表于 2021-1-16 00:11:30 | 显示全部楼层
正点原子 发表于 2021-1-17 02:14
貌似我们源码是和NEC协议反了一下,也就是1就是0,0就是1,历史遗留问题

懂了,懂了
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2020-10-18
在线时间
22 小时
 楼主| 发表于 2021-1-16 00:17:11 | 显示全部楼层
本帖最后由 卡洛尔员工 于 2021-1-16 10:53 编辑

别沉啊
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2020-10-18
在线时间
22 小时
 楼主| 发表于 2021-1-16 13:51:35 | 显示全部楼层
别沉+1
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2020-10-18
在线时间
22 小时
 楼主| 发表于 2021-1-16 16:01:30 | 显示全部楼层
别沉+1
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2020-10-18
在线时间
22 小时
 楼主| 发表于 2021-1-17 00:17:42 | 显示全部楼层
别沉+3
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2021-1-17 02:14:11 | 显示全部楼层
貌似我们源码是和NEC协议反了一下,也就是1就是0,0就是1,历史遗留问题
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2021-1-25
在线时间
7 小时
发表于 2021-2-12 22:11:39 | 显示全部楼层
这个我也看了好长时间,结果和NEC是反着来的。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 06:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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