Blocco Arduino Mega su un Void.

Ciao a tutti, mi ritrovo questa situazione, inserendo questo void Page0() me lo segue esattamente 14 volte poi il mega si blocca del tutto. mentre se lo stesso lo inserisco nel void loop () mi funziona senza bloccarsi.

void Page0(){
Serial.println();
Serial.print("SEI IN PAGE0");
Serial.println();
 
  String message = myNextion.listen(); //check for message
 
  if (message != "") { // if a message is received...
      Serial.println(message); //...print it out
  }
  if (message == "65 0 1 1 ffff ffff ffff"){
     //myNextion.init();
     delay(500);
      Menu();
  }
  int h = dht.readHumidity();
  int t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
     Serial.println("Failed to read from DHT sensor!");
     return;
  }
 
  float hic = dht.computeHeatIndex(t, h, false);
  DateTime now = rtc.now();
  delay(500); 
 
      PausaTemperatura--;
  if(PausaTemperatura==0){
      Serial.print("Aggiorno dati in page0");
      myNextion.setComponentText("page0.t0", String(t));
      myNextion.setComponentText("page0.t3", String(h));
      myNextion.setComponentText("page0.t4", String(now.day(), DEC));
      myNextion.setComponentText("page0.t5", String(now.month(), DEC));
      myNextion.setComponentText("page0.t6", String(now.year(), DEC));
      myNextion.setComponentText("page0.t13", String(daysOfTheWeek[now.dayOfTheWeek()]));
      myNextion.setComponentText("page0.t10", String(now.hour(), DEC));
      myNextion.setComponentText("page0.t11", String(now.minute(), DEC));
      myNextion.setComponentText("page0.t12", String(now.second(), DEC));
  delay(60);
      PausaTemperatura==50;
  } 
        if (PausaTemperatura == 0) {
        PausaTemperatura = 10;
      } 
 return(Page0());  
}

dove sbaglio ? o cosa devo sistemare ? Eliminare il return ?

Per forza si inchioda, anche se scritto nel return, cosa succede quando scrivi Page0(); ?
Chiami Page0(). Quindi tu, dentro a Page0(), alla fine cosa fai ? Richiami (nella return) un'altra volta Page0() ovvero fai una bella ricorsione.
Se è void, perchè fare un return(Page0()); ? Tra l'altro tutti gli altri return di quella funzione sono return; e basta.
Quindi, SI, elimina NON quel return ma la chiamata Page0() dentro al return

E impara anche che quelle che tu chiami “void” si chiamano in realtà “funzioni”. Io sta cosa proprio non la sopporto :(.

ok capito. eliminato il return. adesso sembra che vada meglio.
Grazie.