打印

是不是因为按一次遥控接受了多次数据?

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

这是怎么变化的呢?

使用特权

评论回复
板凳
juventus9554| | 2015-8-22 20:47 | 只看该作者
我想要的效果是按一下 a的值加1  但现在是不定的有时候是加1有时候加2有时候3  什么都有

使用特权

评论回复
地板
司徒老鹰| | 2015-8-22 20:47 | 只看该作者
你看看是不是按键按一次的时候,多次调用了a++的程序,设置一个标志位,确定按一次的时候,只调用一次a++程序

使用特权

评论回复
5
llljh| | 2015-8-22 20:48 | 只看该作者
不妨采用现成的解码芯片YIRTX01。

使用特权

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

使用特权

评论回复
7
pengf| | 2015-8-22 20:49 | 只看该作者
因为楼主没有做松手识别,一直按住就会一直执行a++。

使用特权

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

使用特权

评论回复
9
renyaq| | 2015-8-22 20:52 | 只看该作者
没有代码。怎么分析呢?

使用特权

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

使用特权

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

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

使用特权

评论回复
12
栩栩如生| | 2015-8-22 20:54 | 只看该作者

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

使用特权

评论回复
13
houcs| | 2015-8-22 20:54 | 只看该作者
对,不要忘记在中断程序中对定时器倒数计时。

使用特权

评论回复
14
zwll|  楼主 | 2015-8-22 20:55 | 只看该作者
嗯,我看下,多谢

使用特权

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

本版积分规则

885

主题

11314

帖子

5

粉丝