ILI9341 Teil des Bildschirmes wird nicht bemalt

Gast #4955922
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
Gast #4955933
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
Gast #4955948
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.
Gast #4955973
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren