Look at the structure of your sketch:
void loop(void)
{
aspect = 3; // To change aspect
tft.setRotation(aspect); // To change aspect
...
// draw picture
...
while (1) {
if (++ss > 59) {
...
}
...
sprintf(buf, "%02d:%02d:%02d", hh, mm, ss);
tft.fillRect(108, 10 * 18 + 3, 6 * 18, 18, BLACK);
tft.setCursor(128, 187 + ADJ_BASELINE);
tft.print(buf);
delay(1000);
}
}
So the loop()l will never end. It always displays in the aspect that you chose at the start of loop()
You could change the logic:
void loop(void)
{
if (++aspect > 3) aspect = 0; // go through all 4 aspects.
tft.setRotation(aspect); // To change aspect
tft.fillScreen(BLACK); // clear screen
...
// draw picture
...
while (1) {
...
sprintf(buf, "%02d:%02d:%02d", hh, mm, ss);
tft.fillRect(108, 10 * 18 + 3, 6 * 18, 18, BLACK);
tft.setCursor(128, 187 + ADJ_BASELINE);
tft.print(buf);
delay(1000);
if ((mm % 10) == 0) { //break the while lop every 10 minutes.
break;
}
}
}
Untested. Just experiment for yourself.
I find that a pencil and paper is a good way to draw flowcharts.
This example was designed for a 240x320 screen. You could calculate all the dimensions related to your screen size. It gets a little messy.
David.