Forum: Mikrocontroller und Digitale Elektronik TFT Display zeigt die werte gespiegelt an.


von Moot S. (mootseeker)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich habe wieder mal was aus China bekommen.
Ein 4.0" TFT Display mit einer Auflösung von 320x480 Pixel.
Das Display wird über SPI angesteuert.

Das Display wollte ich kurz mit dem Arduino testen, da ist mir 
aufgefallen, dass auf dem Display alles gespiegelt ist (Siehe Bild im 
Anhang).

Der Kontroller des Displays ist unbekannt. Das Display habe ich von da:
http://www.icstation.com/40inch-display-module-320480-st7796s-driver-interface-320x480-resolution-p-14915.html

Ansteuern konnte ich das Display mit dem ST7789 Treiber von Adafruit.

Weiss jemand wie man die Schrift entspiegeln kann?
Ein simples Rotate bringt natürlich nichts, da die Schrift nicht auf dem 
Kopf ist sondern gespiegelt ist.

von Martin (Gast)


Lesenswert?

Das kannst du in deinem Code in Zeile 34 anpassen.

von Moot S. (mootseeker)


Lesenswert?

Hier noch der example code den ich etwas zusammen gestutzt habe:
1
#include <Adafruit_GFX.h>    // Core graphics library
2
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
3
#include <SPI.h>
4
5
  // For the breakout board, you can use any 2 or 3 pins.
6
  // These pins will also work for the 1.8" TFT shield.
7
  #define TFT_CS        10
8
  #define TFT_RST        8 // Or set to -1 and connect to Arduino RESET pin
9
  #define TFT_DC         9
10
11
// For 1.14", 1.3", 1.54", and 2.0" TFT with ST7789:
12
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
13
14
float p = 3.1415926;
15
16
void setup(void) {
17
  Serial.begin(9600);
18
  Serial.print(F("Hello! ST7789 TFT Test"));
19
20
  // OR use this initializer (uncomment) if using a 2.0" 320x240 TFT:
21
  tft.init(320, 480);           // Init ST7789 320x240
22
23
  // SPI speed defaults to SPI_DEFAULT_FREQ defined in the library, you can override it here
24
  // Note that speed allowable depends on chip and quality of wiring, if you go too fast, you
25
  // may end up with a black screen some times, or all the time.
26
  //tft.setSPISpeed(40000000);
27
28
  Serial.println(F("Initialized"));
29
30
  uint16_t time = millis();
31
  tft.fillScreen(ST77XX_BLACK);
32
  time = millis() - time;
33
34
  Serial.println(time, DEC);
35
  delay(500);
36
37
  // large block of text
38
  tft.fillScreen(ST77XX_BLACK);
39
  testdrawtext("Hallo Welt! Stimmt dieser Text? ", ST77XX_WHITE);
40
  delay(1000);
41
42
  // tft print function!
43
  tftPrintTest();
44
  delay(4000);
45
46
  // a single pixel
47
  tft.drawPixel(tft.width()/2, tft.height()/2, ST77XX_GREEN);
48
  delay(500);
49
50
51
tftPrintTest(); 
52
53
  Serial.println("done");
54
  delay(1000);
55
}
56
57
void loop() {
58
  
59
}
60
61
void testdrawtext(char *text, uint16_t color) {
62
  tft.setCursor(0, 0);
63
  tft.setTextColor(color);
64
  tft.setTextWrap(false);
65
  tft.print(text);
66
}
67
68
void tftPrintTest() {
69
  tft.setTextWrap(false);
70
  tft.fillScreen(ST77XX_BLACK);
71
  tft.setCursor(0, 30);
72
  tft.setTextColor(ST77XX_RED);
73
  tft.setTextSize(1);
74
  tft.println("Hello World!");
75
  tft.setTextColor(ST77XX_YELLOW);
76
  tft.setTextSize(2);
77
  tft.println("Hello World!");
78
  tft.setTextColor(ST77XX_GREEN);
79
  tft.setTextSize(3);
80
  tft.println("Hello World!");
81
  tft.setTextColor(ST77XX_BLUE);
82
  tft.setTextSize(4);
83
  tft.print(1234.567);
84
  delay(1500);
85
  tft.setCursor(0, 0);
86
  tft.fillScreen(ST77XX_BLACK);
87
  tft.setTextColor(ST77XX_WHITE);
88
  tft.setTextSize(0);
89
  tft.println("Hello World!");
90
  tft.setTextSize(1);
91
  tft.setTextColor(ST77XX_GREEN);
92
  tft.print(p, 6);
93
  tft.println(" Want pi?");
94
  tft.println(" ");
95
  tft.print(8675309, HEX); // print 8,675,309 out in HEX!
96
  tft.println(" Print HEX!");
97
  tft.println(" ");
98
  tft.setTextColor(ST77XX_WHITE);
99
  tft.println("Sketch has been");
100
  tft.println("running for: ");
101
  tft.setTextColor(ST77XX_MAGENTA);
102
  tft.print(millis() / 1000);
103
  tft.setTextColor(ST77XX_WHITE);
104
  tft.print(" seconds.");
105
}

von Rainer S. (enevile) Benutzerseite


Lesenswert?


von Moot S. (mootseeker)


Lesenswert?

Rainer S. schrieb:
> https://github.com/adafruit/Adafruit-ST7735-Library/issues/29

Danke das wars!

Das Define:
1
 #define ST77XX_MADCTL_MY
 auf 0 gesetzt und jetzt stimmt alle.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.