[TUTORIAL] Orologio/Cronometro con RTC e collegamento ad Internet (Parte 2 di 2)

Sembra che funzioni

//funzione cronometro
void cronometro(){
  //
  // Controlo se già sto contando o no ...
  //
  if ( fStoContando) {
    //
    // Si, sto già contando, aggiorno solo il display ...
    //
    secses = (millis() - startmillis) / 1000; // secondi della sessione
	secc = secses + secp; // aggiunge eventuali secondi di sessione precedente
    hrsc = secc / 3600;
    secc = secc - ((unsigned long) hrsc * 3600UL);
    minc = secc / 60;
    secc = secc - (minc * 60);
    // Aggiorna durante il conteggio la seconda riga del display
    lcd.setCursor(7,1);
    if (hrsc < 10) lcd.print(" ");
    lcd.print(hrsc);
    lcd.print(":");
    if (minc < 10) lcd.print("0");
    lcd.print(minc);
    lcd.print(":");
    if (secc < 10) lcd.print("0");
    lcd.print(secc);
  }
  else {
    //
    // No, non sto contando quindi ... verifico la pressione del bottone Start ...
    //

    val = digitalRead(start);
    if (val == LOW) {
      delay(75); // <<<<<<<<<<<<<<<< si può provare ad abbassarlo
      val = digitalRead(start);
      if (val == LOW) {
        startmillis = millis(); 
		secp = 0; // con pulsante start resetta
        fStoContando = true; // ... si segna che ha iniziato a contare
        // Visualizza sul display l'ora a cui è partito ...
        secSt = secs;
        hrsSt = hrs;
        minSt = mins;
        //
        lcd.setCursor(7,2);
        if (hrsSt < 10) lcd.print(" ");
        lcd.print(hrsSt);
        lcd.print(":");
        if (minSt < 10) lcd.print("0");
        lcd.print(minSt);
        lcd.print(":");
        if (secSt < 10) lcd.print("0");
        lcd.print(secSt);
        lcd.setCursor(0,3);
        lcd.print ("   !!! start !!!   ");  



      }
    }
  }



  //
  // Controlla se premuto Stop
  val = digitalRead(stopp);
  if (val == LOW) {
    delay(75); // <<<<<<<<<<<<<<<< si può provare ad abbassarlo
    val = digitalRead(stopp);
    if (val == LOW) {
  if ( fStoContando) {
      fStoContando = false; // ... si segna che ha terminato di contare
	  secp = secp + secses; // cumula la sessione finita
	  
	  lcd.setCursor(0,3);
        lcd.print ("   !!! stop  !!!   ");  
      digitalWrite (led, LOW);      // spegni led

      //
    }
else { fStoContando = true;
        startmillis = millis(); 
        lcd.setCursor(0,3);
        lcd.print ("   !!! start !!!   ");  
		
      }
    }
  }
}