funzione millis()

ma l'ho postato 2 pag fa l'esempio millis per aggiornare un display ... bha non capisco.

Pablos hai ragione scusa, non l'avevo proprio visto! Allora, l'ho riadattato al mio sketch come segue:

void loop()
{
  unsigned long currentMillis_a = millis();
  if(currentMillis_a - previousMillis_a > interval_a) 
  {
  previousMillis_a = currentMillis_a;   
  phvalue = letturaph();  
  lcd.setCursor(0,0);
  lcd.print("pH : ");  
  lcd.print(phvalue);
  }  
  readButtons();  //I splitted button reading and navigation in two procedures because 
  navigateMenus();  //in some situations I want to use the button for other purpose (eg. to change some settings)
  if(abilitazioneLog != 0)
  {
   lastSaveLoop ();
  }
} //loop()...

con questa funzione di lettura

int letturaph()
{
  phdigit = analogRead(phin);
  phvalue = (((float)phdigit*14.00)/1023.00);
  //Serial.println (phvalue);
  return phvalue;
}

Ora sembra andare meglio, ma purtroppo la videata a sempre la priorità su tutto. In pratica se io entro nel menu questo si interrompe per mostrarmi la videata di lettura e poi rimane sulla videata di lettura.
Ora ci smanetto un pò credo di aver capito l'inghippo. Grazie per l'aiuto!