请教,红外遥控器连续输入一组按键的问题
把问题简单化:我想用遥控器控制一个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分享。)
谢! unsigned long keytable[]= {0xaafd01,0xaafd02,0xaafd03,0xaafd04};
int k=0;
if (keytable == 收到的键值)
{
if (sizeof(keytable)/sizeof(unsigned long) == k)
{
//处理
}
}
else
{
k = 0;
} pathletboy 发表于 2013-8-11 10:02 static/image/common/back.gif
学习了。 谢!
页:
[1]