|
|
我用红外控制灯的闪烁和停止,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();
}
} |
|