TFT Display erzeugt falsches Farbmuster

OP #2946254
Lesenswert?
• ▲
▼
Hallo Leute,

ich versuche momentan ein QVGA Display (INT035TFT-TS) per STM32F4 
anzusteuern. Dazu verwende ich den FSMC. Lesen und Schreiben 
funktioniert auch schon wunderbar. Momentan verwende ich ein 8Bit 
Dateninterface zu dem Display. Für ein Pixel werden dazu 3 Bytes 
übertragen (RGB).

Mit den Farben scheint aber etwas nicht so ganz zu stimmen. Ich verwende 
folgenden Code für ein Test Pattern.
1
    for(uint16_t y = 0; y < 240; y++)
2
    {
3
      for(uint16_t x = 0; x < 320; x++)
4
      {
5
        if(y < 80)
6
        {
7
          rgb = x;
8
        }
9
        else if(y < 160)
10
        {
11
          rgb = x << 8;
12
        }
13
        else
14
        {
15
          rgb = x << 16;
16
        }
17

18
        *TFT_DATA_REG = (rgb & 0xFF);
19
        *TFT_DATA_REG = (rgb & 0xFF00) >> 8;
20
        *TFT_DATA_REG = (rgb & 0xFF0000) >> 16;
21
      }
22
    }

Nun sollten eigentlich drei Balken erscheinen (RGB) jeweils von dunkel 
nach hell.
Das tatsächliche Ergebnis gibt es im Anhang.

Scheint als ob bei Blau 1 Bit fehlt, bei Grün 3 und bei Rot 5 Bit 
(jeweils MSBs).

Hat jemand ne Ahnung was da los ist? Bin ein wenig ratlos in welche 
Richtung ich suchen muss.

Der Display Controller ist ein SSD1963.

Grüße
Andre
Angehängte Dateien:
Gast #2946317
Lesenswert?
• ▲
▼
Hast Du die Datenpins vertauscht? Das Display (bzw. der Controller) 
nimmt nur 6 Bits entgegen im 8-Bit-Modus und schneidet dabei die LSBs 
ab. Würde zumindest zu Blau passen (5 Überläufe statt einem auf 320 
Spalten). Die "Differenzen" bei Grün und Rot (3 bzw 5) sind auch Sprünge 
von 2.. Bleibt noch der Offset von 1, der versteckt sich womöglch in 
Zeile 42..

HTH
OP #2946629
Lesenswert?
• ▲
▼
Danke für den Hinweis g457, es ging schonmal in die richtige Richtung.
Der SSD1963 war mit einem 24Bit Interface zum Display-Treiber 
konfiguriert, tatsächlich besteht das Interface aber nur aus 18Bits. So 
fehlten bei jeder Farbe immer 2 Bit mehr, und durch die Verschiebung der 
Bits kamen dann die unterschiedlichen Balken zustande. Dank Murphy stand 
das natürlich auch in keine Doku zu dem Display.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.