Boas Amigo @bubulindo consegui fazer a tela do programa e com os menus e as telas, retirei todos os while(1), substitui por switch case,muito melhor!
Para voltar a tela do menu principal ( nao sei se fiz certo) ao apertar o "esc" eu gravo 1 na flag menu e consequentemente ela volta a primeira tela, achei o modo mais facil de fazer isso
Mas como nem tudo são rosas, eu cai em um "probleminha" da função milis():
void leitura_temp()
{
if ( (millis() - delayIntervalo) > intervalo ) { //LEITURA DOS DADOS ==INTERVALO = A 2000
unsigned long start = micros();
int chk = DHT.read11(DHT11_PIN);
unsigned long stop = micros();
delayIntervalo = millis();
};
}
Ao final de 48~49 dias a contagem do millis volta a zero(0) e esta parte do meu programa vai travar pois nao fiz nada para "dar a volta" (e não faço ideia como fazer)
Como estou usando um RTC externo como poderia usar para substituir o millis? Tenho mas 4 contagens de tempo no codigo usando Millis() uma de 24hras para a leitura de umidade do solo.
Poderia me dar mais uma força ?