打印
[51单片机]

红外解码问题,求教

[复制链接]
1934|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kilmty|  楼主 | 2014-9-20 13:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做了一个红外解码的程序,设一个变量a,遥控上的一个键对应给a一个固定值,这个没问题,但是我想按一下遥控的某个键实现a++,就不行了, 按一下  显示出来的a的值并不是连续变化的,是不是因为按一次遥控接受了多次数据?
有什么解决办法,求大神指导

相关帖子

沙发
ningling_21| | 2014-9-20 13:32 | 只看该作者
按一下  显示出来的a的值并不是连续变化的

这是怎么变化的呢?

使用特权

评论回复
板凳
kilmty|  楼主 | 2014-9-20 13:39 | 只看该作者
ningling_21 发表于 2014-9-20 13:32
按一下  显示出来的a的值并不是连续变化的

这是怎么变化的呢?

我想要的效果是按一下 a的值加1  但现在是不定的有时候是加1有时候加2有时候3  什么都有

使用特权

评论回复
地板
langgao183| | 2014-9-20 16:20 | 只看该作者
你看看是不是按键按一次的时候,多次调用了a++的程序,设置一个标志位,确定按一次的时候,只调用一次a++程序

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
kilmty + 3 很给力!
5
shang21ic| | 2014-9-20 22:44 | 只看该作者
不妨采用现成的解码芯片YIRTX01。

使用特权

评论回复
6
ballack_linux| | 2014-9-20 23:01 | 只看该作者
你红外怎么解码的? 协议中最后部分有长按次数啊 用那个去判断!!

使用特权

评论回复
7
y651503148| | 2014-9-20 23:48 | 只看该作者
因为楼主没有做松手识别,一直按住就会一直执行a++。

使用特权

评论回复
8
zh_sl| | 2014-9-21 11:15 | 只看该作者
按下遥控器某键时令发送的编码第x位置1,解码程序判断x位==1就调用一次a++

使用特权

评论回复
9
很忙| | 2014-9-22 11:24 | 只看该作者
没有代码。怎么分析呢?

使用特权

评论回复
10
tiexian| | 2014-9-22 12:31 | 只看该作者
设置状态标志  正确解到码后置标志位  再到主循环去判断这个标志为是否置位 置位就+1  并且清标志位

使用特权

评论回复
11
zwz7219| | 2014-9-22 15:15 | 只看该作者
大多数遥控器在按下按键时,按规则不停发射对应此键的编码,这是导致不断加 1 的原因。
设定 a 为固定值也有这个过程,只不过每次都是该值,所有没有表现出问题。

可以这样处理,设置一个定时器,每检测到一次有效编码,检测此定时器,如果定时器值为 0,说明是一次“键下”事件,进行相应的处理;如果定时器不为 0,说明是“键压”事件,不进行加 1 处理,或进行“键压”事件处理。

处理完上述事件后,设定定时器的值,使定时器“归 0”的的时间大于 2 倍红外编码发射速率,若红外编码每秒发射 20 次,可以将定时器设定为 100mS。

不要忘记在中断程序中对定时器倒数计时。

使用特权

评论回复
12
弹痕CJP| | 2015-10-27 11:25 | 只看该作者
zwz7219 发表于 2014-9-22 15:15
大多数遥控器在按下按键时,按规则不停发射对应此键的编码,这是导致不断加 1 的原因。
设定 a 为固定值也 ...

你好啊,我是学生,我最近在做红外解码的相关工作,遇到一些问题,能向您请教一下吗?我QQ670168192,如果方便的话留下您QQ:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:承接中小功率LED驱动器设计以及打样。PCB layout,51单片机程序开发,硬件设计

21

主题

92

帖子

2

粉丝