Das mit dem CS Pin bei Seedstudio hatte ich mal gelesen!
Allerdings habe ich genau dort mein Problem.
Pin 13,12,11 und 10 für das Display wobei hier 10 der CS Pin ist. Pin 9 wird ab Version 1.1 vom Canshield standardmäßig für den CS genutzt.
Nun sollte ja eigentlich alles schön sein, Pin 9 CS Canshield und Pin 10 CS Tft, oder habe ich das falsch verstanden? Das mit der parallel Nutzung von MISO / MOSI / SCK war mir neu, danke für die Info
Guten Abend, ich habe "leider" doch noch eine Frage
Wie ist es möglich, dass man die Zahl die ausgegeben wird zu sehen, ohne das sie sich selber überschreibt (siehe Anhang)?
Ich hatte es schon mit drawChar (als reset) versucht, habe dann allerdings nur mehr "geblinke" als alles andere.
Würde mich über eine Anregung meiner Gehirnzweige sehr freuen!
Also ist es wirklich so, dass wenn man ein Zeichen auf die gleiche Stelle schreibt nur die aktiven Pixel gesetzt werden? Und nicht alle Pixel (egal on oder aus) im Bereich des Zeichens neu geschrieben werden? Das hat jemand anders hier nämlich auch kürzlich berichtet. Damit gehen geht dann die übliche Vorgehensweise Zahlen auf eine konstante Breite zu formatieren und mit Nullen oder Leerzeichen aufzufüllen nicht.
Da würde ich mich mal an Adafruit wenden was das soll. Und wie man dass dann flacker-frei lösen soll.
Der Text wird schon richtig gelöscht. Aber TFTs sind recht langsam. Du siehst halt dass das Rechteck gezeichnet wird und dann der Text darüber. Wenn du damit leben kannst ok, aber schön ist es nicht.
Das Problem liegt nicht am Display, sondern an der Library!! Die sollte eigentlich alle Pixel im Bereich eines Zeichens neu schreiben. So dass man ein Zeichen direkt mit anderen Zeichen (wie einem Leerzeichen) überschreiben kann. Dann formatiert man seinen Text auf eine konstante Breite mit führenden Leerzeichen oder Nullen.
Aber wenn ich das mit Adafruit richtig verstehe werden da nur die "An"-Pixel neu geschrieben. Nicht die "Aus"-Pixel. Vielleicht habe ich es auch falsch verstanden, aber hier hat jemand das gleiche berichtet: http://forum.arduino.cc/index.php?topic=360577.msg2487554#msg2487554
Ich würde da mal eine eMail an Adafruit schreiben wie das gedacht ist.
Hast du mal diese Methode probiert:
setTextColor(uint16_t c, uint16_t bg)
Da kann man die Text-Farbe und die Hintergrund-Farbe setzen. Was passiert wenn man Schwarz als Hintergrund nimmt?
Ich habe nur Erfahrung mit UTFT. Da ist das kein Problem.
Ohne einen Blick in die TFT Lib, gibt es eine Möglichkeit den Mode auf XOR zu setzen ?
Dann schreibt man das was man Löschen will einfach nochmals im XOR Mode.
Das mit der parallel Nutzung von MISO / MOSI / SCK war mir neu, danke für die Info
Deswegen gibt es auch für jedes Devices einen Chip Select (CS) Pin.
Wobei du eigentlich einen HX8340B Chip hast. Weiß nicht die Farben dann so bei dir auch definiert sind. Ich sehe da auf die Schnelle nichts.
Im Beispiel dazu wird es per Hand gemacht:
// Color definitions
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
Ganz normales RGB565 (aka High Color) wenn du selbst noch Farben definieren willst
Einer da hat vorgeschlagen den alten Text zu überschreiben. Jemand anders hat gesagt dass das automatisch geschieht wenn man zwei Parameter angibt.
If you carefully read API notes you will notice that tft.setTextColor can take either one or two arguments. If single argument provided - it will print text color with clear background (junk pixels will accumulate). If two arguments provided - it will fill background of each character with color of second argument.
Und wie gesagt mit den Farb-Definitionen aufpassen. Es kann gut sein dass die hier nicht bekannt sind. Dann meckert der Compiler und man macht es halt selbst.