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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von BerndB (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Das sind meine Libraies:

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

von Grafiker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
BerndB schrieb:
> Das sind meine Libraies:

Also ich hab fillrectangle gefunden. Du nicht?

von BerndB (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sorry, nein!

von Grafiker (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Ok, ich danke euche sehr!

Beitrag #6565033 wurde von einem Moderator gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.