我谈学习型红外遥控(二)

      基于上一篇文章对红外遥控的分析,由于用于存储的FLASH大小有限,希望红外学习部分用于存储的内容能尽可能少。于是,需要对其进行压缩。

     之前的思路是把每一个学到的电平都存储到FLASH中,占用空间比较大。所以考虑对学到的电平进行归类,压缩。

     通过对接收到的数据包分析,其中数据都是载波信息和闲置无载波信息间隔构成。我暂且将这样的一对信息称作“码元”,所以一个数据包可以看成是由多个“码元”构成。我的判定思路是:每次取一个码元与之前已经确定的码元种类进行比较,先比较码元长度即两种信息总的时长是否在误差允许范围内,若不在,则表明新的码元种类出现,若在,再去比较码元中两种信息的时长是否在各自误差允许范围内,两个中只要有一个不在其误差范围内,就判定新的码元种类出现。码元区分过程中,难点在于误差范围的设定。我的程序中设定了两个误差设定值,一个是码元长度允许误差COUPLEEROERAGE,一个是码元中载波信息和闲置信息允许误差SINGALERRORATE。设定COUPLEEROERAGE为2ms,因为有些红外数据包,它的不同种类码元间的时长最小误差在2ms左右。基于相同思路,本打算给SINGALERRORATE也设定某个定值,开始时设定200us。但通过测试发现,有些红外编码分析的结果不理想,像红外格式M50560,因为我学习部分学了两个数据包,发现长按情况下,数据包中两个停止位的误差允许达到3ms,若设定200us,学习之后会认为这是一种新的“码元”,导致分析错误。我发现出现这种情况的红外编码大都有个特点,就是它们停止位时长都会在20ms到50ms之间,所以我会判断码元中两种信息的时长有无存在该范围内的,如果有,则将SINGALERRORATE设为3ms,如果没有,则设定SINGALERRORATE设为200us。

    之后按这种方式测试各红外编码格式,验证解析成功!!微笑

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奶盖红茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值