RGB565_480x272.h selber erzeugen

Gast #4718595
Lesenswert?

Hallo, folgende Datei enthält Werte eines ganzen Bildes (in C-Code bzw. 
Hex-Form) für den STM32F4...

https://github.com/fboris/STM32Cube_FW_F4/blob/master/Projects/STM324x9I_EVAL/Examples/LTDC/LTDC_Display_1Layer/Inc/RGB565_480x272.h

wie kann ich solche C/ Header-Dateien aus einem Bild selber erzeugen?

vielen Dank
Gast #4718851
Lesenswert?

ok. folgendes probiert: speichern als C-File, RGB565 high, erzeugt 
folgendes:

static GUI_CONST_STORAGE unsigned short _ac480x272_lake[] = {
  0x9BCA, 0x9BCA, 0x9BA9, 0xA3CA, 0x9BCA, 0x9BCA, 0x9BCA, 0x9BAA, 
0x9B89, 0x9B69, 0x9369, 0x9BA9, 0x9BAA, 0x9BAA, 0x9BAA, 0x9BAA, 0x9BAA, 
0x9BAA,...


ich brauch es aber so:

const uint32_t RGB565_480x272[65280] =
{
0x7A537A53,
0x82538253,
0x82538253,
0x8A538253,
0x82538253,
0x82538253,....


wie ändere ich dies ab? mit einem Editor? wird kompliziert?

Danke
Gast #4718911
Lesenswert?

phuu... ich versuche mich gerade erst nur an einem example, und dort ist 
es als 32bit hinterlegt.

Ich habe nämlich jetzt am STM32F429I Disc. ein 480x272 angeschlossen 
(ein bisschen Lötarbeit war gefragt x-D)...
es läuft soweit, aber hätte jetzt gerne ein 480x272 hintergrund-bilder 
angezeigt statt 320x240...

Was heisst versuche "ein packed"?
Gast #4718962
Lesenswert?

ich habe das colorkeying am laufen,

und die Pfeile werden angezeigt und schalten auch um auf Tastendruck, 
aber einfach doppelt, also pro bildschrimhälfte 1mal. vermutlich weil 
halt für 240 Spalten geschrieben, ich aber 480 Spalten habe...

Habe im main.c zwar alles was auch 240x320 geschrieben war auf 480x272 
umgetippt/gerechnet. Auch die Porch-Einstellungen habe ich gemäss meinem 
4.3" Display. Also zeigt wirklich sauber an, ausser die letzten 4-5 
Zeilen sind nicht mehr weiss sondern braun....

ich möchte jetzt einfach bilder anzeigen lassen statt die Pfeile... aber 
irgendwie hat das ganze 2 Layer... das muss ich auch noch studieren.

Habe einmal ein RGB565_480x272.. header-File statt das 240x320 
aufgespielt, da war der Hintergrund dann nicht mehr weiss sondern mit 
einem Bild - wobei die Pfeile nicht mehr sichtbar waren...
Gast #4718969
Lesenswert?

Habe es gerade getestet.
Es werden auch die 16bit Werte automatisch ohne Platzverschwendung in 
den 32 bit Speicher gepackt.
Darüber brauchst Du dir keine Gedanken machen.

Übergib einfach die Adresse auf dein Array und gut.
Gast #4719052
Lesenswert?

Danke fürs ausprobieren, das File habe ich auf rgb565_480x272.h 
umbenannt, im ColorKeying Ordner abgelegt und wie folgt abgeändert:

*/
#ifndef __RGB565_480X272_H
#define __RGB565_480X272_H


const uint16_t RGB565_480x272[76200] = {
  0x9BCA, 0x9BCA, 0x9BA9, 0xA3CA, 0x9BCA, 0x9BCA,

bin zwar nicht sicher ob 76200 nötig ist? oder leer lassen?


Dann habe ich im main.c noch das geändert:

  /* Input Address configuration */
  LTDC_Layer_InitStruct.LTDC_CFBStartAdress = (uint16_t)&RGB565_480x272;

und im main.h

#include "RGB565_480x272.h"



was ist falsch?

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