Forum: Mikrocontroller und Digitale Elektronik TFT Display ILI9341 Textänderung


von BerndB (Gast)


Lesenswert?

Guten Tag,

bei meinem Versuch eine Temperatur auf einem ILI9341 abzubilden 
scheitere ich daran, das der alte Temperaturwert mit dem neuen Wert 
überschrieben wird, was dazu fürt das das ganze immer unleserlicher 
wird. Der alte Wert wird also nicht gelöscht.
tft.setCursor(10, 10);
tft.println("  Temperatur: " + String(temperatur) + " C");

Auch das hilft nicht:
tft.setCursor(10, 10);
tft.println("  Temperatur: " + String("            ") + " C");
tft.setCursor(10, 10);
tft.println("  Temperatur: " + String(temperatur) + " C");

Das hilft, sieht aber blöd aus:
tft.fillScreen(ILI9341_DARKGREEN);
tft.setCursor(10, 10);
tft.println("  Temperatur: " + String(temperatur) + " C");

Ich habe alle möglichen libraries nach möglichen Befehlen durchsucht 
aber leider nichts gefunden.

Mit Dank im voraus,
Bernd

von Grafiker (Gast)


Lesenswert?

BerndB schrieb:
> Ich habe alle möglichen libraries nach möglichen Befehlen durchsucht
> aber leider nichts gefunden.

Dann ist die Lib scheisse. Denn wenn sie es nicht schafft
einen alten Text durch Überschreiben mit Hilfe von Leerzeichen
zu löschen ist was faul.

Vielleicht gibt es in deiner famosen Lib die Funktion
fillrectangle. Dann nutze diese um deinen alten Text mit
schwarz zu übermalen.

von Axel R. (axlr)


Lesenswert?

Schreib mal die alte Temperatur nochmal in Wagenfarbe. das macht sie 
auch unsichtbar und dann mit weiss die neue Temperatur.
Ist aber schon doof, oder?
Was issn das für ne "Lib"?

von BerndB (Gast)


Lesenswert?

Das sind meine Libraies:

#include "DHTesp.h"
#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"

von Grafiker (Gast)


Lesenswert?

BerndB schrieb:
> Das sind meine Libraies:

Also ich hab fillrectangle gefunden. Du nicht?

von BerndB (Gast)


Lesenswert?

Sorry, nein!

von Grafiker (Gast)


Lesenswert?

Oh man (ohhhh määääähn)!

Ist das sooo schwer ein paar Buchtsaben zu abstrahieren?
1
void Adafruit_GFX::fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
2
                            uint16_t color) {
3
  startWrite();
4
  for (int16_t i = x; i < x + w; i++) {
5
    writeFastVLine(i, y, h, color);
6
  }
7
  endWrite();
8
}

von Heinz (Gast)


Lesenswert?

1
 
2
 /**********************************************************************/
3
  /*!
4
    @brief   Set text font color with transparant background
5
    @param   c   16-bit 5-6-5 Color to draw text with
6
    @note    For 'transparent' background, background and foreground
7
             are set to same color rather than using a separate flag.
8
  */
9
  /**********************************************************************/
10
  void setTextColor(uint16_t c) { textcolor = textbgcolor = c; }
11
12
  /**********************************************************************/
13
  /*!
14
    @brief   Set text font color with custom background color
15
    @param   c   16-bit 5-6-5 Color to draw text with
16
    @param   bg  16-bit 5-6-5 Color to draw background/fill with
17
  */
18
  /**********************************************************************/
19
  void setTextColor(uint16_t c, uint16_t bg) {
20
    textcolor = c;
21
    textbgcolor = bg;
22
  }
23
24
  /**********************************************************************/
25
  /*!
In dem obigen Auszug aus "Adafruit_GFX.h" sind zwei Versionen von 
setTextColor() aufgeführt. Die 2., bei der auch eine Hintergrundfarbe 
angegeben wird, sollte Dein Problem lösen.

von Heinz R. (heijz)


Lesenswert?

Hier ein anderes Projekt das auch auf den Adafruit -Libraries basiert

Dort sind die möglichen Kommandos beschrieben

https://espeasy.readthedocs.io/en/latest/Plugin/P095.html

von BerndB (Gast)


Lesenswert?

Ok, ich danke euche sehr!

Beitrag #6565033 wurde von einem Moderator gelöscht.
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.