Yesterday tested the same display with this library. Just measured microsecond needed to display one string (about 25 characters long) on the screen. I was shocked with the results. It's about can bus debug.
Here is the code:
Code:
microseconds_start = micros();
tft.fillScreen(ILI9341_BLACK);
sprintf(can_sendh,"H:%d:0x%08X:%02X%02X%02X%02X%02X%02X%02X%02X", msg.len, msg.id,msg.buf[0],msg.buf[1],msg.buf[2],msg.buf[3],msg.buf[4],msg.buf[5],msg.buf[6],msg.buf[7]);
tft.drawString(can_sendh, 160, 120);
Serial.println(micros()-microseconds_start);
With tft.fillScreen(ILI9341_BLACK) the execution takes 64000-65000usec! 65milliseconds for just one string. The most interesting is that not the displaying of the string takes that much time, but making the screen blank does! When i comment out "tft.fillScreen(ILI9341_BLACK);" part, the execution time drops to 6000usec = 6msek. I am planning to have many objects on the screen, but having updated only small parts of the screen. Are there any workarounds not to redraw the entire screen every update cycle, but updating only small part of the screen with a view of saving the time?
If i simply put new text on the same place, there might be some artefacts from the previous objects, if they took more space on the screen.
Thank you so much!