Forum: Mikrocontroller und Digitale Elektronik Bild auf TFT laden - LPC 2478 MCB2470


von Tobias H. (hansanaut)


Lesenswert?

Hallo,

ich hab hier seit kurzem ein MCB2470 von Keil / EA liegen.
Leider bin ich noch recht unerfahren in dem Bereich Speicherverwaltung 
und TFT Display.

Die SWIM Library habe ich bereits entdeckt und auch im Groben 
verstanden, wie das funktioniert.

Nun würde ich gerne ein Bild / Foto auf den TFT laden. Hierzu bräuchte 
ich Hilfe. Ich fasse mal zusammen, was ich glaube verstanden zu haben:
Das Bild muss im RGB1:5:5:5 Format gespeichert werden. Das Bild muss 
irgendwie in den Speicher. Danach kann ich mit dem SWIM Befehl 
swim_put_image das Bild wohl aus dem Speicher laden und auf dem TFT 
darstellen.

Meine konkreten Fragen hierzu:

1. Was genau ist der RGB1:5:5:5 Mode und wie kann ich ein JPG / BMP 
umwandeln in diesen Modus.

2. Wie bekomme ich die RAW Datei in den Speicher? Gibt es hierfür 
ebenfalls eine Library, die man sich zu Gemüte führen sollte?

3. Stimmt das mit dem "swim_put_image" Befehl oder habe ich da was 
falsch interpretiert?

Vielen Dank schon mal im Voraus!

Greetz Hansanaut

von Tobias H. (hansanaut)


Lesenswert?

hochschieb

Der Befehl swim_put_image will doch das Bild aus dem Speicher laden. Wie 
bekomm ich das hin?

Kann jemand helfen?

Viele Grüße Hansanaut

von let (Gast)


Lesenswert?

Um ein Bild in den Speicher zu bekommen bieten sich verschiedene
Möglichkeiten an: Nachladen zur Laufzeit über RS232, SD-Karte,
Speichern im Flash als Byte-Array, ...

Es wird das einfachste sein die Daten von einem PC Programm erstellen
zu lassen das z. B. ein umkomprimiertes .bmp Bild in das 5:5:5
Format konvertiert. Du könntest Nokias Qt SDK nehmen. Das unterstützt
auch Formate wie .jpg und .png und kann soweit ich weiß auch nach
16-Bit konvertieren. Das setzt allerdings vorraus das du mit C++
Klassenbibliotheken umgehen kannst. Eine grafische Benutzeroberfläche
muß es aber nicht sein. Mit Qt kann man auch Anwendungen für die
Konsole schreiben.

Wenn das 16-Bit Bild ins Flash soll (150kB groß), muß es noch
als Array in ein C-File konvertiert werden. Das entsprechende
Programm kannst du entweder selber schreiben (vllt. integriert im
Bildkonverter) oder suchst mal mit google oder sourceforge ob es
ein 'bin2c' oder ein 'bin2hex' mit C-Output gibt. Ich habe sowas
mal programmiert, vielleicht finde ich das wieder falls es dich
interessiert.

Die Farbformate sind übrigens im User Manual vom LPC2478 beschrieben.

von Jens (Gast)


Lesenswert?

hi,
ich bin auch grad mit dem MCB2400 beschäftigt. Wo hast du denn die SWIM 
Libary gefunden? Ich finde Dokumente dazu aber leider die Libary an sich 
nicht.

Grüße
Jens

von Hansanaut (Gast)


Lesenswert?

Hallo,

hier als ZIP:
http://ics.nxp.com/support/documents/microcontrollers/

Greetz Hansanaut

von Sebastian W. (mrhack)


Lesenswert?

Für das Konvertieren der Bilder bietet sich bmp2c 
(http://sourceforge.net/projects/bmp2c/) an. Als Output wird hier ein 
Array erzeugt, welches du in deinen Code einfügen kannst.

von jens (Gast)


Lesenswert?

JEA!
Klasse, vielen Dank!
Die Libary ist echt nützlich!

Grüße
Jens

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.