Problema con millis()

Niente da fare,ho modificato lo sketch come segue,secondo le tue indicazioni,
il risultato della seriale e' come prima! =(

if((ascii_data[0] == '5')&&(ascii_data[1] == '0'))
      {
       
       // Se la simcard è riconosciuta,accendi il led
        digitalWrite(2, HIGH);  // LED CHE INDICA IL RICONOSCIMENTO DI UNA SIM CARD VALIDA
        Serial.println("SIMCARD VALIDA");
        Serial.println();
        PreviousDurata=millis();
        
         VAL_CTRL1=digitalRead(CTRL1);
         VAL_CTRL2=digitalRead(CTRL2);
         
       
         // Verifica se ci sono malfunzionamenti nel compattatore:
      
        
         if ((VAL_CTRL1==HIGH) || (VAL_CTRL2==HIGH)) { // simulazione errori tramite i pulsanti
           Serial.println("Attenzione!Errore compattatore!");
          } 
          
          else {
            
                Serial.println ("Effettua la scelta del materiale da conferire entro 10 secondi.."); 
                
                // Parte il conto alla rovescia per la scelta del materiale da conferire:
                
                //PreviousDurata=millis();
                int stato =0;
                while (stato <1)
                 {
                
                if ((CurrentDurata - PreviousDurata) > Timeout) 
                 {   
                  stato = 1;
                   // Manda l'impulso solo se non l'ha già mandato prima
                   if (impulso_mandato == false)
                    {
                     Serial.println("BLOCCATO"); 
                     impulso_mandato = true;
                    }
                 }
      
                else   
                {
                 CurrentDurata=millis(); 
             
                 if (pulsantePremuto(PET) == true && giaPremuto == false)
                   {
                     stato = 1;
                   giaPremuto = true;
                   Serial.println("Scelta effettuata : PET");
                   apriportelloPET();
                   Contatore=0;
                   contaPET();
                   } 
                }
               } 
            }
      }
        
       // CHIUSURA PARENTESI if ascii
       else
        { 
         //Se la simcard non e' riconosciuta,spegni il led
         digitalWrite(2, LOW);
        Serial.println("Simcard non valida!");
        Serial.println();
      }
      Serial.print("Estrarre la SIMCARD,Grazie...");
      Serial.println();
      
      smartcard.PowerOffSC();

      //wait smartcard extraction
      while(smartcard.IsCardPresent(1)){
        delay(500);  
      }
      
      chiudiportelloPET(); // Chiude portello PET quando si estrae la scheda.
      
      Serial.println("Operazione conclusa");
      Serial.println();
      
      
  } // Fine LOOP