耿一文 发表于 2013-8-10 23:18:33

请教,红外遥控器连续输入一组按键的问题

把问题简单化:

我想用遥控器控制一个led,但需要输入2个以上的按键控制,如依次输入1,2,3,4点亮led。

我的思路是 定义一个标记值 int k = 0;

k == 0情况下,按1后, k = 1;
k == 1情况下,按2后, k = 2;
k == 2情况下,按3后, k = 3;
k == 3情况下,按4后, k = 4;同时点亮led。

如果不按顺序按键,或按其他键,则赋值 k = 0;

这种方法可行,但似乎有点麻烦,请大神指点,有没有什么简便的方式。

另外想请教,那种简单的遥控器没有中断功能,即经常出现ffffffff代码,不知如何避免。(个人的想法还是使用判断语句,如果收到的代码不是遥控器所拥有的正确代码,那么程序所有参数及功能保持不变。)

(献个丑。分享一下这个功能的idea。是用在智能家居的闹钟部分,只有正确输入一组按键才能完全停止闹钟,否则进入延时再响模式。不知道大家有没有更好的闹钟的idea分享。)

谢!

pathletboy 发表于 2013-8-11 10:02:05

unsigned long keytable[]= {0xaafd01,0xaafd02,0xaafd03,0xaafd04};
int k=0;

if (keytable == 收到的键值)
{
        if (sizeof(keytable)/sizeof(unsigned long) == k)
        {
                //处理
        }
}
else
{
        k = 0;
}

耿一文 发表于 2013-8-12 00:12:19

pathletboy 发表于 2013-8-11 10:02 static/image/common/back.gif


学习了。 谢!
页: [1]
查看完整版本: 请教,红外遥控器连续输入一组按键的问题