I haven't personally tried it, but I think it should be as simple as creating a second TFT instance and using it instead. You could then pass a reference to the chosen screen into your draw function. Something like this:
...
#define cs1 10
#define cs2 11 // whatever pin you have chosen
#define dc 8 // this pin can probably be shared...
#define rst 9 // ...as well as this
TFT screen1 = TFT(cs1, dc, rst);
TFT screen2 = TFT(cs2, dc, rst);
...
void tft_draw1(TFT& t){
t.background(255,255,255);
...
}
void tft_draw2(TFT& t){
t.background(255,255,255);
...
}
void setup(){
screen1.begin();
screen2.begin();
...
}
void loop()
{
tft_draw1(screen1);
tft_draw2(screen2);
delay(10000);
tft_draw1(screen2);
tft_draw2(screen1);
delay(10000);
}
Judging by your weird response and the fact that you have opened a new thread in another sub-forum with my unchanged code sample, I can only assume that you have not understood what PaulS has suggested.
PaulS:
If that code only works for one TFT, then I'd question these assumptions:
#define dc 8 // this pin can probably be shared...
#define rst 9 // ...as well as this
He means that I may be wrong to have assumed that those pins could have been shared. You need to allocated two more pins so that each screen has its own dc and rst, and then update the code so that it uses them.
Perhaps that will fix the problem.