Forum: Mikrocontroller und Digitale Elektronik ILI9341 Teil des Bildschirmes wird nicht bemalt


von Julian (Gast)


Lesenswert?

Moin!
Ich nutze ein vor einem guten Jahr bei Ebay erworbenes 2,4" 320x240px 
Display. Es ist relativ sicher ein ILI9341 verbaut. Ich habe mir die 
TFTLCD library von Adafruit geholt 
(https://github.com/adafruit/TFTLCD-Library). Beim Versuch den 
Graphictest durczuführen, scheiterte es am Auslesen des Chips. Also habe 
ich manuell den identifier (Zeile 64) auf 0x9341 gesetzt. Nun zeigt das 
Display was größtenteils korrektes an. Allerdings wird nur ca. 3/4 des 
Bildschirmes bemalt. Der Rest bleibt Ameisenfußball. Sobald in der Loop 
die Rotation durchgewechselt wird, dreht verschiebt sich der nicht 
beschriebene Teil auf die gegenüberliegende Seite und zurück.

Ich dachte, dass er womöglich mit der falschen Auflösung arbeitet, 
allerdings ist in der Adafruit_TFTLCD.cpp folgendes korrekt gesetzt:
#define TFTWIDTH   240
#define TFTHEIGHT  320

Die Verdrahtung des Shields habe ich mit den Makros verglichen und ist 
korrekt.

Habt ihr eine Idee, woran es liegen könnte? Ich liefer gerne weitere 
Informationen, bin mir jetzt nur nicht sicher, was relevant sein 
könnte...


Schöne Grüße
Julian

von Norbert (Gast)


Lesenswert?

Julian schrieb:
> Beim Versuch den
> Graphictest durczuführen, scheiterte es am Auslesen des Chips.
Das funktioniert bei meinem auch nicht.

> Die Verdrahtung des Shields habe ich mit den Makros verglichen und ist
> korrekt.
Ohne gescheite Verdrahtung würdest Du gar nix sehen.
Wenn Du was sehen kannst, kommt er schon über die Initialisierung.


> Habt ihr eine Idee, woran es liegen könnte?
Wird die Ausrichtung richtig gesetzt?
Ist evtl. eine Zählvariable für die Koordinate auf 8 Bit eingeschränkt?

Probier mal umgekehrt:
1
#define TFTWIDTH   320
2
#define TFTHEIGHT  240

von Julian (Gast)


Lesenswert?

Norbert schrieb:
> Wird die Ausrichtung richtig gesetzt?
> Ist evtl. eine Zählvariable für die Koordinate auf 8 Bit eingeschränkt?
>
> Probier mal umgekehrt:#define TFTWIDTH   320
> #define TFTHEIGHT  240

Habe die Werte umgedreht und die Arduino IDE vor dem erneuten 
Programmieren neugestartet (übernimmt er ansonsten Änderungen in der 
Bib?), leider kein erkennbarer Unterschied.

Es würde mich wundern, wenn die Bib von Adafruit, die auf 320x240px 
ausgelegt ist, darin ein solch großen Fehler hätte. Habe aber dennoch 
nachgeschaut, soweit ich das sehe, ist die Funktion flood die 
LCD-füllende Funktion. Und dort sind die relevanten Variablen alle groß 
genug definiert.

von Julian (Gast)


Lesenswert?

Um den Punkt des Überlaufes zu testen, habe ich für die Länge mal 
kleinere Werte angegeben. Mit 240 füllt er genau eine (unvollständige) 
Zeile. Ab 241 nimmt er entsprechend die 2. (Bei 480 füllt er genau 2, 
usw.)

Klingt für mich nicht nach einem Überlauf.

Was mir dabei auffiel. Fülle ich den Screen mit dem Makro RED füllt er 
sich Blau, bei BLUE wird es rot. Grün, Schwarz und Weiß sind korrekt.

von Julian (Gast)


Lesenswert?

Ich bin ein Idiot -.- Ich habe die falsche Datei bearbeitet, weshalb es 
keinen Unterschied machte, wenn ich die Makros geändert habe. Habe dies 
nun in der richtigen Datei geändert und es geht :)

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.