IRremote segnale continuo

Al massimo io sono arrivato a questo, ma funziona molto male, in quanto il telecomando funziona con degli interrupt e quando tieni premuto il testo spesso la libreria legge comunque un tasto 0 (ovvero nulla)
Ho provato a fare come suggerito da @uwe con la millis().
Io ho un telecomando che se tieni premuto da un codice fisso, perciò per semplificare tasto ok o tasto ripetuto per me è uguale.

#include <IRremote.h>

#define TASTO_RIPETI 0xFFFFFFFF
#define TASTO_OK 0x632192736

const byte LED_PIN=13;
const byte RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
boolean pulsantePremuto = false;
unsigned long prevmillis=0;

void setup() {
  delay(1000);
  Serial.begin(9600);
  Serial.println("go");
  pinMode(LED_PIN, OUTPUT);
  irrecv.enableIRIn();
}

void loop() {
  if (irrecv.decode(&results)) 
  { if(results.value==TASTO_OK || results.value==TASTO_RIPETI) 
    { //Serial.println("Okay"); 
      pulsantePremuto=true;
      prevmillis=millis();
    } 
    else
    { //Serial.println("altro tasto"); 
      pulsantePremuto=false;
    }

  }
  irrecv.resume();
  if(millis()-prevmillis>200)
  { //Serial.println(millis());
    if(results.value==0) pulsantePremuto=false;
    prevmillis=millis();
  }
  Serial.print("results.value:"); Serial.print(results.value); 
  Serial.print("  pulsantePremuto:"); Serial.print(pulsantePremuto);
  Serial.println("");
  results.value=0;
  if(pulsantePremuto)
    digitalWrite(LED_PIN, HIGH);
  else
    digitalWrite(LED_PIN, LOW);
}