Gast
#216505
Hallo an Alle, weiss jemand wie man eine BMP Grafik auf ein Display vom Typ T6963 bekommt? Ein Beispiel z.B. in C wie es funktioniert, das wäre toll.
|
Anzeige
|
BMP mit T6963
Gast
#216505
Hallo an Alle, weiss jemand wie man eine BMP Grafik auf ein Display vom Typ T6963 bekommt? Ein Beispiel z.B. in C wie es funktioniert, das wäre toll. ausdrucken und aufkleben!
Gast
#216507
http://www.mikrocontroller.net/attachment.php/215117/lcdcon_USB.zip Da findest zu einen BMP Dekoder in C. Das ganze auf einem uC zu machen, macht wenig Sinn. Besser am PC in Raw Daten umwandeln.
Gast
#216508
Das bringt mir auch nicht viel weiter. Ich kann die EXE Datei nicht ausführe. Kein Programm Fenster erscheint bei mir. Ich benötige nur ein Tool womit man die BMP Datei in z.B. ein RAW Datei ablegt. Anschließend benötige ich noch eine C Routine wo dann das ganze auf mein Display ausgibt.
Gast
#216509
Gibt es keinen C Code dafür?
Gast
#216510
> Ich benötige nur ein Tool womit man die BMP Datei in z.B. ein > RAW Datei ablegt. das kann doch so ziemlich jedes Grafiktool, z. B. Irfan View.
Gast
#216511
Da ich nicht so der Profi bin, brauche ich dazu noch für den AVR eine Funktion womit man dann das Raw File auf das Display T6963 ausgeben kann.
Gast
#216512
Professionelle Software Grafik LCD Bibliotheken für den T6963 Controller findest du unter: www.easygui.com www.ramtex.dk Sind leider sehr teuer. Wenn jemand eine günstigere Alternative dazu anbieten kann bin ich auch daran interessiert.
Gast
#216513
Vor einiger Zeit habe ich mal C-Codes zu diesem Thema gesehen. Ich benötige da eine Funktion PUT_BITMAP in der ich dann die ganzen Werte von der Raw Datei übergebe und anschließend werden diese dann auf das Display ausgegeben.
Gast
#216514
Fuer den Gameboy-Advance gibt es einige Tools zur Konvertierung und von Bitmaps und auch ein paar Routinen zur Anzeige, mglw. 'was Nuetzliches als Ideengeber dabei. Mit Fontgen (irgendwo auf 8052.com) koennen ebenfalls BMP-Dateien in "C-Arrays" konvertiert werden. Anzeigeroutine ist dann "nur noch" Array durchlaufen und Punkte setzen.
Gast
#216515
Hi bei Electronic Assembly (ich glaube www.lcd-module.de) habe ich vor einiger Zeit Software zu Konvertierung von Bitmaps in programmtechnisch verwerdbare Formate. Ob C dabei ist kann ich im Moment nicht sagen. MfG HG
Gast
#216516
Die von dir genannte Software bezieht sich auf "intelligente LCD Module" - siehe Artikel unten. Die weltweit ersten Displays mit eingebauter Intelligenz sind da ! Mit 8 eingebauten Zeichensätzen und mehr als 112 integrierten Grafikfunktionen geben sie einen Einblick in die Grafikprogrammierung von morgen. Ab sofort sind keine Programmierkenntnisse mehr erforderlich, um die Möglichkeiten eines modernen Grafikdisplays voll auszuschöpfen. Die Verwendung diverser Schriftarten- und größen, Linien zeichnen, Bilder platzieren, Bargraph anzeigen, Erstellen von Pulldown Menus, um nur einige der hier integrierten Befehle zu nennen, all das gelingt mühelos und schnell. Die Anbindung erfolgt flexibel über eine der 3 eingebauten Schnittstellen RS-232, SPI und I²C-Bus. Die Versorgungsspannung liegt bei +5V. Die Displays gibt es in blau-weiß und schwarz-weiß (FSTN). Alle sind für einen Betriebstemperaturbereich von -20..+70°C ausgelegt; Temperaturkompensation inklusiv. Optional sind die Displays der EA eDIP240-7 Serie auch mit analogem Touchpanel lieferbar. Trotz integriertem Touchkontroller und voller Softwareunterstützung ist der Aufpreis mit nur 10.- EUR gering. Über das Touchpanel lassen sich Eingaben tätigen, Bildschirme ändern, Analogwerte einstellen, Menus öffnen, oder aber auch x-beliebige Werte über die serielle Schnittstelle senden. Dadurch können sehr einfach externe Geräte gesteuert werden. Im EEPROM-Speicher können komplette Befehlsabläufe und Bilder ablegt oder auch die integrierten Fonts geändert und erweitert werden. Die Displays besitzen auf einer Fläche von 4,5" (96x61mm) eine Auflösung von 240x128 Punkten. Mit nur 113x70x10,8mm sind sie extrem kompakt aufgebaut. Die Montage erfolgt kostengünstig durch einfaches Einlöten in eine Platine. Alle im industriellen Umfeld gültigen EMV-Richtlinien werden selbstverständlich voll eingehalten. Ein komplettes Entwicklungstool samt Simulator für Windows ist kostenfrei im Internet verfügbar. Es zeigt schnell die ganze Funktionalität und unterstützt gleichzeitig später die Entwicklung.
Gast
#216517
Vielleicht so: Mit Paintshop o.ä. das S/W-Bild als *.pbm mit der Option "binär" abspeichern. Schön einfaches Format. Der einfachheithalber sollte das Bild in X-Richtung ein vielfaches von 8 aufweisen. Die Datei enthält nun ein Header, der u.a. X- u. Y-Auflösung angibt. Die Pixeldaten enthalten pro Byte 8 Pixel. Die Bytes sind Zeilenweise von links oben nach recht unten nacheinander abgelegt. Datei mit einem bin2hex-Tool (z.B. winbin.exe von www.ulrichradig.de) umwandeln. Die Datei als *.h umbenennen und folgendes am Anfang einfügen:
Ganz unten nicht vergessen:
Zum Bild zeichnen aus dem Header die X- u. Y- Auflösung ermitteln. Aufbau Header siehe google (ist einfach der Header)
Anmerkung zu set_byte: Deine LCD-schreibe-Funktion; Gibt an X-Y-Position 8 Pixel horizontal aus. Bei Display>256Pixel(X||Y) uint16_t Variablen verwenden.
Gast
#216518
Anmerkung: Im 1. Codefenster <u> bzw. </u> ist falsch. Muß ein unterstrich sein. Hat die Formatierungsroutine verwurschtelt...
Gast
#216519
>Mit Paintshop o.ä. das S/W-Bild als *.pbm mit der Option "binär"
abspeichern. Schön einfaches Format.
Das geht mit BMP genauso:
Der Header besteht aus 62Bytes bei einem SW Bild und der Rest sind
reine Bilddaten. Allerdings steht das Bild auf dem Kopf, also vorher
das Bild auf den kopf stellen.
Und die Bildbreite wird auf 4Byte aufgerundet:
Ist das Bild z.B. 240 Pixel = 30Byte breit, werden 32 gespeichert.
Gast
#216520
Hei ich danke euch!
Meine Funktion für Pixel setzen lautet so:
void LCD_PutPixel(unsigned char x, unsigned char y, unsigned char Set)
{
unsigned int XY;
unsigned char bitByte;
XY=0x0000;
XY=XY+(y*22);
XY=XY+(x/6);
out(0x24, XY & 0x00FF, XY>>8);
bitByte=5-(x % 6);
if (0 != Set)
{
bitByte |= 0xF8;
}
else
{
bitByte|=0xF0;
}
out(bitByte, 0, 0); //0b1111SXXX , s is set/reset, xxx is bit
number
xxx
//(Each memorybyte i six graphics bits (pixels))
}
Wie bekomme ich es hin, das ich z.B. 8 Pixel gleichzeitig ausgeben
kann? Dies beötige ich doch dafür oder?
Gast
#216521
Das ist ganz einfach: Das Byte ans LCD senden, und den Befehl 0xC0 hinterher. Mehr muss man nicht tun.
Gast
#216522
Außer man betreibt das Display mit 6*8 Font. Dann werden nur die unteren 6 Bits einer Bytes ausgewertet. Da muß man dann ein wenig rechnen.
Gast
#216523
Ok Benedikt ich werds mal ausprobieren. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|