Elegoo 2.8 mapping

Habe es jetzt hin bekommen.
Ich stell hier den code mal ein falls jemand mit dem display auch probleme hat.
Die werte sind schon etwas komisch.
Funktionieren mit meinem Display aber perfekt.

#include <Elegoo_GFX.h>
#include <Elegoo_TFTLCD.h>
#include <TouchScreen.h>

// Farbe definieren
#define BLACK       0x0000
#define NAVY        0x000F
#define DARKGREEN   0x03E0
#define DARKCYAN    0x03EF
#define MAROON      0x7800
#define PURPLE      0x780F
#define OLIVE       0x7BE0
#define LIGHTGREY   0xC618
#define DARKGREY    0x7BEF
#define BLUE        0x001F
#define GREEN       0x07E0
#define CYAN        0x07FF
#define RED         0xF800
#define MAGENTA     0xF81F
#define YELLOW      0xFFE0
#define WHITE       0xFFFF
#define ORANGE      0xFD20
#define GREENYELLOW 0xAFE5
#define PINK        0xF81F

// Button 1
#define BUTTON1_X 20    // Von Links
#define BUTTON1_Y 20    // Von Oben
#define BUTTON1_W 280
#define BUTTON1_H 40
#define BUTTON1_TEXTSIZE 3
#define FRAME1_X 19     // Von Links
#define FRAME1_Y 19     // Von Oben
#define FRAME1_W 282
#define FRAME1_H 42

// Button 2
#define BUTTON2_X 20    // Von Links
#define BUTTON2_Y 70    // Von Oben
#define BUTTON2_W 280
#define BUTTON2_H 40
#define BUTTON2_TEXTSIZE 3
#define FRAME2_X 19     // Von Links
#define FRAME2_Y 69     // Von Oben
#define FRAME2_W 282
#define FRAME2_H 42

// Button 3
#define BUTTON3_X 20    // Von Links
#define BUTTON3_Y 120   // Von Oben
#define BUTTON3_W 280
#define BUTTON3_H 40
#define BUTTON3_TEXTSIZE 3
#define FRAME3_X 19     // Von Links
#define FRAME3_Y 119    // Von Oben
#define FRAME3_W 282
#define FRAME3_H 42

// Textzeile
#define TEXTZEILE_X 19     // Von Links
#define TEXTZEILE_Y 169    // Von Oben
#define TEXTZEILE_W 282
#define TEXTZEILE_H 42

// Wird benötigt für touchscreen
#define YP A3  // muss ein analog pin sein
#define XM A2  // muss ein analog pin sein
#define YM 9   // kann ein digital pin sein
#define XP 8   // kann ein digital pin sein

TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

// Touch ILI9341 
//#define TS_MINX 120
//#define TS_MAXX 900
//#define TS_MINY 70
//#define TS_MAXY 920

#define TS_MINX 100
#define TS_MAXX 1210
#define TS_MINY 70
#define TS_MAXY 700

#define LCD_CS A3    // Chip Select Analog 3
#define LCD_CD A2    // Command/Data Analog 2
#define LCD_WR A1    // LCD schreiben Analog 1
#define LCD_RD A0    // LCD lesen Analog 0
#define LCD_RESET A4 // reset pin

Elegoo_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

int INTERVAL = 200;  // Intervalzeit button entprellen

void setup() {
  Serial.begin(9600);

  tft.reset();
  tft.begin(0x9341);
  tft.setRotation(3); // Darstellung Landscape
  tft.setTextSize(3);
  tft.fillScreen(BLACK);
  tft.setTextColor(WHITE);

  // feiner roter rahmen um das bild
  tft.drawRoundRect(10, 10, 300, 220, 10, RED);  //von links, von oben, breite, höhe, radius
  // Trennlinie unten
  tft.drawLine(10, 165, 308, 165, RED);          //von links, von oben, länge, von oben

  // Zeichnet den ersten button
  // Feiner rahmen um den ersten button
  tft.drawRect(FRAME1_X, FRAME1_Y, FRAME1_W, FRAME1_H, WHITE);
  // Button 1 den hintergrund ausfüllen
  tft.fillRect(BUTTON1_X, BUTTON1_Y, BUTTON1_W, BUTTON1_H, DARKGREY);      //von links, von oben, breite, höhe
  // Cursor zum schreiben setzen
  tft.setCursor(30, 30);
  // Setzt die textfarbe
  tft.setTextColor(WHITE);
  // Text schreiben
  tft.println("Button 1");
  // Runden weissen kreis zeichnen
  tft.fillCircle(275, 40, 16, WHITE);           //von links, von oben, durchmesser
  // Runden schwarzen kreis zeichnen
  tft.fillCircle(275, 40, 15, BLACK);           //von links, von oben, durchmesser

  // Zeichnet den zweiten button
  // Feiner rahmen um den zweiten button
  tft.drawRect(FRAME2_X, FRAME2_Y, FRAME2_W, FRAME2_H, WHITE);
  // Button 2 den hintergrund ausfüllen
  tft.fillRect(BUTTON2_X, BUTTON2_Y, BUTTON2_W, BUTTON2_H, DARKGREY);      //von links, von oben, breite, höhe
  // Cursor zum schreiben setzen
  tft.setCursor(30, 80);                        //von links, von oben
  // Setzt die textfarbe
  tft.setTextColor(WHITE);
  // Text schreiben
  tft.println("Button 2");
  // Runden weissen kreis zeichnen
  tft.fillCircle(275, 90, 16, WHITE);           //von links, von oben, durchmesser
  // Runden schwarzen kreis zeichnen
  tft.fillCircle(275, 90, 15, BLACK);           //von links, von oben, durchmesser

  // Zeichnet den dritten button
  // Feiner rahmen um den dritten button
  tft.drawRect(FRAME3_X, FRAME3_Y, FRAME3_W, FRAME3_H, WHITE);
  // Button 3 den hintergrund ausfüllen
  tft.fillRect(BUTTON3_X, BUTTON3_Y, BUTTON3_W, BUTTON3_H, DARKGREY);      //von links, von oben, breite, höhe
  // Cursor zum schreiben setzen
  tft.setCursor(30, 130);                       //von links, von oben
  // Setzt die textfarbe
  tft.setTextColor(WHITE);
  // Text schreiben
  tft.println("Button 3");
  // Runden weissen kreis zeichnen
  tft.fillCircle(275, 140, 16, WHITE);          //von links, von oben, durchmesser
  // Runden schwarzen kreis zeichnen
  tft.fillCircle(275, 140, 15, BLACK);          //von links, von oben, durchmesser

  // Zeichnet die Textzeile
  tft.drawRect(TEXTZEILE_X, TEXTZEILE_Y, TEXTZEILE_W, TEXTZEILE_H, WHITE);

#define MINPRESSURE 10
}
void loop() {

  // Abfrage ob touch vorliegt
  TSPoint p = ts.getPoint();

  if (p.z > MINPRESSURE)
  {
    // Start Button entprellen
    unsigned long currentMillis = millis();
    unsigned long previousMillis = millis();
    while ((currentMillis - previousMillis) < INTERVAL)   // schleife solange time kleiner als INTERVAL ist
    {
      currentMillis = millis();                           // Update currentMillis mit aktueller zeit
    }
    // Ende Button entprellen

    pinMode(XM, OUTPUT);
    pinMode(YP, OUTPUT);

    if (p.z > MINPRESSURE) {
      //p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
      //p.y = (tft.height() - map(p.y, TS_MINY, TS_MAXY, tft.height(), 0));
      p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width());
      p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());
      int x = p.y;
      int y = p.x;

      if ((x > BUTTON1_X) && (x < (BUTTON1_X + BUTTON1_W))) {
        if ((y > BUTTON1_Y) && (y < (BUTTON1_Y + BUTTON1_H))) {
          tft.drawRect(FRAME1_X, FRAME1_Y, FRAME1_W, FRAME1_H, RED);
          tft.fillCircle(275, 40, 15, GREEN);
          delay(80);
          // Cursor zum schreiben setzen
          tft.setCursor(30, 180);                       //von links, von oben
          // Setzt die textfarbe
          tft.setTextColor(WHITE, BLACK);
          // Text schreiben
          tft.println("Erster Button ");
          tft.drawRect(FRAME1_X, FRAME1_Y, FRAME1_W, FRAME1_H, WHITE);
          tft.fillCircle(275, 40, 15, BLACK);
        }
      }

      if ((x > BUTTON2_X) && (x < (BUTTON2_X + BUTTON2_W))) {
        if ((y > BUTTON2_Y) && (y < (BUTTON2_Y + BUTTON2_H))) {
          tft.drawRect(FRAME2_X, FRAME2_Y, FRAME2_W, FRAME2_H, RED);
          tft.fillCircle(275, 90, 15, GREEN);
          delay(80);
          // Cursor zum schreiben setzen
          tft.setCursor(30, 180);                       //von links, von oben
          // Setzt die textfarbe
          tft.setTextColor(WHITE, BLACK);
          // Text schreiben
          tft.println("Zweiter Button");
          tft.drawRect(FRAME2_X, FRAME2_Y, FRAME2_W, FRAME2_H, WHITE);
          tft.fillCircle(275, 90, 15, BLACK);
        }
      }

      if ((x > BUTTON3_X) && (x < (BUTTON3_X + BUTTON3_W))) {
        if ((y > BUTTON3_Y) && (y < (BUTTON3_Y + BUTTON3_H))) {
          tft.drawRect(FRAME3_X, FRAME3_Y, FRAME3_W, FRAME3_H, RED);
          tft.fillCircle(275, 140, 15, GREEN);
          delay(80);
          // Cursor zum schreiben setzen
          tft.setCursor(30, 180);                       //von links, von oben
          // Setzt die textfarbe
          tft.setTextColor(WHITE, BLACK);
          // Text schreiben
          tft.println("Dritter Button");
          tft.drawRect(FRAME3_X, FRAME3_Y, FRAME3_W, FRAME3_H, WHITE);
          tft.fillCircle(275, 140, 15, BLACK);
        }
      }
    }
  }

}