极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10165|回复: 2

红外控制单个led灯的闪烁问题

[复制链接]
发表于 2013-9-3 13:58:43 | 显示全部楼层 |阅读模式
我用红外控制灯的闪烁和停止,1控制闪烁,5控制停止熄灭,但是按1键闪烁后按5就没有反应了(在串口监控中可以看见没有接收到5键的编码),并且一直闪烁成了死循环,只有按复位键恢复。我也从C语言中知道程序的一个特性之一就是有穷性,如果一直执行就会死机。但是在看一些视频中又能实现,会不会有一些新的方法呢?求教大神帮忙啊,附上代码:
#include <IRremote.h>

int RECV_PIN = 11;
int LED_PIN=4;
IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(LED_PIN,OUTPUT);
}

void loop() {
  if (irrecv.decode(&results))
  {
    if (results.value==16724175)  
    {
      for(int i=0;i<2;i++)
      {
       digitalWrite(LED_PIN,HIGH);
       delay(500);
       digitalWrite(LED_PIN,LOW);
       delay(500);
        digitalWrite(LED_PIN,HIGH);
       if(results.value==16726215)
       {   
         digitalWrite(LED_PIN,LOW);
         break;
       }
       else
       {
        i=i-1;
       }
      }
    }
   
    irrecv.resume();
  }
}
回复

使用道具 举报

发表于 2013-9-3 20:23:28 | 显示全部楼层
你自己进死循环了,死循环中又不处理红外消息,自然就所谓的死掉了。
回复 支持 反对

使用道具 举报

发表于 2013-9-4 14:27:33 | 显示全部楼层
把程序捋一下,有些混乱.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 02:14 , Processed in 0.048779 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表