Salve a tutti,
nela realizzazione di un mio progetto, avrei necessità di eseguire delle routine quando viene toccato un pulsante mappato sul display tft, senza interrompere il loop(). Qualcosa che mi dicesse: "è stato toccato il display, eseguo la routine pippo". Questa routine andrebbe a verificare se è stato toccato un pulsante! Al momento ho 2 routine:
void checkButtonPressed(){
p = waitOneTouch(); //p e j sono TSPoint
j=p;
p.x=mapXValue(j);
p.y=mapYValue(j);
for (uint8_t b=0; b<BUTTONS; b++) {
if (buttons[b].contains(p.x, p.y)) {
// Action
switch (b) {
case BUTTON_0:
Serial.println("Toccato 0");
break;
case BUTTON_1:
// Clear
Serial.println("Toccato 1");
break;
case BUTTON_2:
Serial.println("Toccato 2");
break;
}
}
}
}
TSPoint waitOneTouch() {
TSPoint p;
do {
p= ts.getPoint();
pinMode(XM, OUTPUT); //Pins configures again for TFT control
pinMode(YP, OUTPUT);
} while((p.z < MINPRESSURE )|| (p.z > MAXPRESSURE));
return p;
}
C'è la possibilità di fare qualcosa del genere? il touchscreen utilizza gli SPI di un arduino mega e quindi pin 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS).
grazie 1000