ecran tactile debit données pas sufisant ??

bonjour,
Voilà mon souci j’ai un écran 3.2 tactile avec une mega 2560.
je suis en train de réaliser un pong.
mes raquettes fonctionne avec la lecture de de l’interface tactile.Séparément tout est ok.
simultanément sa bloque.
voici le code :

  // UTFT_Buttons_Demo_320x240 (C)2013 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A small demo to demonstrate the use of some of the
// functions of the UTFT_Buttons add-on library.
//
// This demo was made for modules with a screen resolution 
// of 320x240 pixels, but should work on larger screens as
// well.
//
// This program requires both the UTFT and UTouch libraries
// in addition to the UTFT_Buttons add-on library.
//

#include <UTFT.h>
#include <UTouch.h>
#include <UTFT_Buttons.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t Dingbats1_XL[];

// Set up UTFT...
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino 2009/Uno/Leonardo shield   : <display model>,19,18,17,16
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due       : <display model>,25,26,27,28
// Standard chipKit Uno32/uC32                 : <display model>,34,35,36,37
// Standard chipKit Max32                      : <display model>,82,83,84,85
// AquaLEDSource All in One Super Screw Shield : <display model>,82,83,84,85
//
// Remember to change the model parameter to suit your display module!
UTFT          myGLCD(ITDB32S,38,39,40,41);

// Set up UTouch...
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino 2009/Uno/Leonardo shield   : 15,10,14,9,8
// Standard Arduino Mega/Due shield            : 6,5,4,3,2
// CTE TFT LCD/SD Shield for Arduino Due       : 6,5,4,3,2
// Standard chipKit Uno32/uC32                 : 20,21,22,23,24
// Standard chipKit Max32                      : 62,63,64,65,66
// AquaLEDSource All in One Super Screw Shield : 62,63,64,65,66
UTouch        myTouch(6,5,4,3,2);

// Finally we set up UTFT_Buttons :)
UTFT_Buttons  myButtons(&myGLCD, &myTouch);

// Variables
int x, y;

int raquette1x= 23;
int raquette1y= 100;
int raquette1y_old;
int raquette2x= 285;
int raquette2y= 100;
int raquette2y_old;
void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.setFont(SmallFont);

  myTouch.InitTouch();
  myTouch.setPrecision(PREC_MEDIUM);
  
  myButtons.setTextFont(BigFont);
  myButtons.setSymbolFont(Dingbats1_XL);
  //myGLCD.drawRect(20,20,300,220);                    // cadre du terrain de jeux
  myGLCD.drawLine(20,20,300,20);                    //ligne du haut
  
  myGLCD.drawLine(160,20,160,220);                    //ligne médiane

  myGLCD.drawLine(20,220,300,220);                    //ligne du bas
   
   myGLCD.fillRect(raquette1x,raquette1y,raquette1x+10,raquette1y+40);
   myGLCD.fillRect(raquette2x,raquette2y,raquette2x+10,raquette2y+40);

}

void loop()
{
  
 //lecture du capteur
    if (myTouch.dataAvailable())
     {
      myTouch.read();
      x=myTouch.getX();
      y=myTouch.getY();
 }
  myGLCD.print(String(raquette1y),120,25);
  myGLCD.print(String(raquette2y),180,25);
        
  raquette1();
  //raquette2 = myButtons.addButton( 285,  20, 10,  40, "");
 // but3 = myButtons.addButton( 10, 100, 300,  30, "Button 3");
 // but4 = myButtons.addButton( 10, 140, 300,  30, "Button 4", BUTTON_DISABLED);
 // butX = myButtons.addButton(279, 199,  40,  40, "a", BUTTON_SYMBOL);
 // butY = myButtons.addButton(  0, 199, 100,  40, "I", BUTTON_SYMBOL | BUTTON_SYMBOL_REP_3X);
  //myButtons.drawButtons();

  /***************************
   Boucle deplacement
  ****************************/
  while(1) 
  {
  
         
           /* myGLCD.print("x", 130, 20);
           myGLCD.print(String(x),140,20);
            myGLCD.print("y", 170, 20);
           myGLCD.print(String(y),180,20);
     */
 
  // Traitemennt raquette joueur 2
      raquette2y_old= raquette2y;   // sauvegarde de l'ancienne position.
      // Test colonne droite raquette joueur 2
        if (x>=290)
          {
            //  Déplacement bas
             if (raquette2y< y)                               // ancienne position < alors bas
             {raquette2y= raquette2y+10;}                  // incrementation de la position
             if (raquette2y>219-40){raquette2y=219-40;}       // test des limites
        //  Déplacement haut
             if (raquette2y> y)                                // ancienne position > alors haut
             {raquette2y=raquette2y-10;}                    // décrementation de la position
              if (raquette2y< 21){raquette2y=21;}               // test des limites
        //  Effacement de la raquette
             myGLCD.setColor(0,0,0);
             myGLCD.fillRect(raquette2x,raquette2y_old,raquette2x+10,raquette2y_old+40);
        //  Affichage de la raquette    
             myGLCD.setColor(0,0,255);
              myGLCD.fillRect(raquette2x,raquette2y,raquette2x+10,raquette2y+40);
           }
      
      
           
       
      
      
      
    

  
  }
}
void raquette1()
{
   // Traitemennt raquette joueur 1
    raquette1y_old= raquette1y;   // sauvegarde de l'ancienne position.
      // Test colonne gauche raquette joueur 1
           if (x<= 30)  // Upper row
            {
           /*
           myGLCD.print("Button 1", 110, 220);
           myGLCD.print("x", 200, 220);
           myGLCD.print(String(x),200,220);
           */
        //  Déplacement bas
             if (raquette1y< y)                               // ancienne position < alors bas
             {raquette1y= raquette1y+10;}                  // incrementation de la position
             if (raquette1y>219-40){raquette1y=219-40;}       // test des limites
        //  Déplacement haut
             if (raquette1y> y)                                // ancienne position > alors haut
             {raquette1y=raquette1y-10;}                    // décrementation de la position
              if (raquette1y< 21){raquette1y=21;}               // test des limites
        //  Effacement de la raquette
             myGLCD.setColor(0,0,0);
             myGLCD.fillRect(raquette1x,raquette1y_old,raquette1x+10,raquette1y_old+40);
        //  Affichage de la raquette    
             myGLCD.setColor(0,0,255);
              myGLCD.fillRect(raquette1x,raquette1y,raquette1x+10,raquette1y+40);
            }

}

je récupère la lecture due l’interface, puis je traite la raquette 1 et ensuite la raquette2.
j’ai essayé aussi avec le traitement de l’affichage en dehors du traitement des raquettes pas mieux.

avec vous une idée.
merci pour lecture.
bonne journée

Le mieux reste encore de débuger par toi-même : par exemple place des Serial.Print("test 1"), test 2 etc ... un peu partout pour voir où ça bloque.

À mon avis le while(1)est de trop