Forum: Mikrocontroller und Digitale Elektronik Grafikdaten für LCD in C


von Benedikt (Gast)


Lesenswert?

Ist vielleicht eine dumme Frage, aber wie kann ich Bilder für ein LCD
möglichst einfach im ANSI C Code ablegen, um diese auf einem LCD
anzuzeigen ?

In Assembler gibt es das "db" Schlüsselwort. In C habe ich nichts
vergleichbares gefunden...

von Fritz Ganter (Gast)


Lesenswert?

über ein array, z.B.

char g[]={112,32,15,123};

Die Bytes musst halt selber reinschreiben.

von Fritz Ganter (Gast)


Lesenswert?

Achja, und wenn du die Möglichkeit hast XPM Grafiken zum machen, da
steht das schon im File fast richtig drinn:


static char * compass_xpm[] = {
"50 50 768 2",
"       c None",
".      c #AC956C",
"+      c #A59267",
"@      c #9F8C61",
"#      c #9A8563",

Da musst halt noch ein bisserl rauslöschen, dann gehts.

von justme (Gast)


Lesenswert?

als s/w bitmap speichern soll auch gehen... muß man aber auch ein paar
bytes rausschmeißen... also um an die bytes für das array zu kommen

von Benedikt (Gast)


Lesenswert?

Es geht also nur über Arrays ?
Schade, da muss ich halt schnell mal ein QBASIC Programm schreiben,
dass mir BMPs in *.h Dateien umwandelt und gleich Arrays schreibt.
Per Hand schreibe ich jedenfalls keine 76800 Bytes...

von Matthias (Gast)


Lesenswert?

Hi

du könntest auch mit bin2hex und eineme Texteditor/Script das Bild in
dein Binary einbauen.

Matthias

von Benedikt (Gast)


Lesenswert?

Noch eine letzte Frage:
Wie vermeide ich, dass der Compiler das Array als eine Variable sieht
und diese ins RAM läd ? Es reicht, wenn das Array als Konstante im
Programmspeicher bleibt. const vor dem Array funktioniert aber nicht...

von Matthias (Gast)


Lesenswert?

Hi

das steht sowohl in der Doku zur AVRLibc als auch diverse male hier im
Forum.

Matthias

von Benedikt (Gast)


Lesenswert?

Hier im Forum habe ich nur unbeantwortete Fragen
http://www.mikrocontroller.net/forum/read-1-8414.html#8414
und
const unsigned char Array_im_ROM [] = {....};
gefunden.
Wenn ich das verwende hängt sich der Compiler (NC30 von Renesas für
M16C uC) auf...

von Matthias (Gast)


Lesenswert?

Hi

ach du redest vom NC30 und M16C. Ich bin jetzt vom AVRGCC ausgegangen
da  der hier deutlich in der Mehrheit ist. Der NC30 in Version 5.0
sollte Variablen mit dem const qualifier eigentlich automatisch ins ROM
legen. Zumindest hab ich hier ein "C Language Programming Manual" von
Mitsubishi welches das aussagt.

Matthias

von Benedikt (Gast)


Lesenswert?

Habe ich bisher auch gedacht, deshalb die Frage...

Ich habe bisher 3 Versionen ausprobierte:
a) unsigned char Array_im_ROM [] = {....};
b) const unsigned char Array_im_ROM [] = {....};
c) static unsigned char Array_im_ROM [] = {....};

a) endet in einer Fehlermeldung, irgendwas mit Stack Wert von max 255
b) endet in einem Absturz des Compilers und den restlichen Programmen
c) funktioniert, aber die Daten sind im RAM...

Ich hab mir gerade mal das "Language Programming Manual" von
Mitsubishi runtergeladen. Vielleicht komme ich ja weiter. Ich hasse
das, wenn ich etwas laut C Dokumentation (halt das normale C fürn PC)
programmiere, aber es dann nicht funktioniert...

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.