普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 867|回复: 0

[已解决] 记录并分享通过红外遥控实验发现的三个知识点

[复制链接]

14

主题

48

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
发表于 2023-7-14 13:14:30 | 显示全部楼层 |阅读模式
      在完成官方视频P183-P190后,1- 发现视频讲解和代码中有一处讲师“挖了坑没有埋”的地方:
....
                                        while((IRED==0)&&time_cnt)//等待数据1或0前面的0.56ms结束,若超过6ms强制退出
                                        {
                                                delay_10us(1);
                                                time_cnt--;
                                                if(time_cnt==0)return;       
                                        }
                                        time_cnt=20;
                                        while(IRED)//等待数据1或0后面的高电平结束,若超过2ms强制退出
                                        {
                                                delay_10us(10);//约0.1ms
                                                ired_high_time++;
                                                if(ired_high_time>20)return;       
                                        }

....
就是这个累计等待时长的变量“time_cnt=20”,讲师在讲解中讲完赋值20后就再也没有把这个变量用起来,而是后面启用了新变量- “ired_high_time”去计算“0/1"的高电平时长了,这个赋值到程序结束也再没用过,因此这一处赋值尽可以去掉,否则让人莫名其妙。

2- 关于”地址码“:程序中显示的是控制码,那么地址码是什么样子的?试了一下将gired_data[0]显示了一下,取值是0x00,gired_data[1]里面是0xFF,符合取反的规律。讲师提到对于一类的红外遥控器,地址码是相同的,刚好实验板卖家多给了一个遥控器,经过两个遥控器的验证,地址码确实是一样的。

3- 关于”抗干扰“- 用两个遥控器同时向接收头发送不同的按键会发生什么?以同时在两个遥控器上用按键”1-(0x0C)"和按键“2-(0x18)”尝试,发现反复尝试后,多数时间显示为0,并跟踪到程序进入了控制码与控制反码不一致的分支内,说明校验过程起效了。不过也有出现显示了0x0C和0x18以外数值的情况,说明干扰成功的绕过了校验,扰乱了接收头的工作。
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 01:38 , Processed in 0.077643 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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