Grazie per la risposta. Il da disegnare è inizializzato con
int currentpage = 0;
bool daDisegnare = true;
appena accendo quindi va sulla pagina ZERO e la disegna...
poi ad ognitocco la variabile torna a TRUE...
Ma abbiamo decentrato il problema...
posto questo blocco per spiegarmi meglio:
if (currentpage == 3) {
//timer utilizzo device
cli(); // disabilito l'interrupts
current_millis_value = millis();
sei(); // abilito l'interrupts
// overflow millis()
if (current_millis_value < previous_millis_value)
m += MAX_MILLIS_VALUE - previous_millis_value + current_millis_value;
else m += current_millis_value - previous_millis_value;
seconds += m / 1000;
m = m % 1000;
minutes += seconds / 60;
seconds = seconds % 60;
hours += minutes / 60;
minutes = minutes % 60;
hours = hours % 24;
previous_millis_value = current_millis_value;
tft.setTextSize(2);
tft.setTextColor(NERO);
tft.setCursor(80, 60);
tft.fillRect(30, 58, 170, 20, WHITE);
tft.print(hours);
tft.print(":");
tft.print(minutes);
tft.print(":");
tft.print(seconds);
delay(1000);
//fine timer
}
Tutto questo papocchio è semplicemente un timer che conta il tempo di utilizzo del devices.
Il codice è racchiuso in "currentpage=3" e funziona correttamente, il probelma è che se all'interno inserisco un "tocco" per andare altrove, non funziona bene, o meglio devo picchiare più volte per prendere il tocco... il codice:
if (currentpage == 3) {
if (p.x > 39 && p.x < 65 && p.y > 155 && p.y < 270) {//questo tocco fa fatica a funzionare...
currentpage=2;
daDisegnare=true;
}
//timer utilizzo device
cli(); // disabilito l'interrupts
current_millis_value = millis();
sei(); // abilito l'interrupts
// overflow millis()
if (current_millis_value < previous_millis_value)
m += MAX_MILLIS_VALUE - previous_millis_value + current_millis_value;
else m += current_millis_value - previous_millis_value;
seconds += m / 1000;
m = m % 1000;
minutes += seconds / 60;
seconds = seconds % 60;
hours += minutes / 60;
minutes = minutes % 60;
hours = hours % 24;
previous_millis_value = current_millis_value;
tft.setTextSize(2);
tft.setTextColor(NERO);
tft.setCursor(80, 60);
tft.fillRect(30, 58, 170, 20, WHITE);
tft.print(hours);
tft.print(":");
tft.print(minutes);
tft.print(":");
tft.print(seconds);
delay(1000);
//fine timer
}
Grazie
Maurizio Filomeni