-
Vollbildgrafik am LCD
Hi
hab schon seit längerem ein T6963c gesteuertes 160 x 128 Bildpunkte grosses Display an meinem MC hängen.
Funktioniert auch alles, nur hab ich mir jetzt Gedanken über ne Vollbildgrafik gemacht bin aber nicht weiter. Hab ne funktion
bitset(Zeile,Spalte) mit der ich einzellne Punkte am display setzen kann, nur wie bekomm ich so ne grafik zustande. Das einzige was mir einfiel war ein Riesen Array aber allein um die daten is array zu bringen braucht man ja 2 Leben und verliert ständig den Überblick.
Falls mir jemand weiterhelfen kann oder ne idee hat oder mir sagen kann vergiss es würde ich mich freuen.
-
willst du nurn bild auf dem glcd anzeigen lassen?
-
Ja genau ein bild übers ganze lcd nur wie? hab keine lust jedes bit einzelln per hand zu setzten da verbring ich mein ganzes Leben damit.
-
dein leben nicht, aber was hast du denn fürne programmiersprache?
-
C da muss es doch was geben.
-
oha, c iss schlecht, das kenne ich nun nicht, war davon ausgegangen das du bascom proggst, da gibts ne bildfunktion, sry
-
Naja macht nix.
Danke trotzdem für deine schnellen Antworten
-
Wie kommt die Grafik denn zum µC? Vom PC aus?
Ich glaube es gibt ein Programm, das die Bilder runterrechnet. Ansonsten musst du ja nur ein 1bit-BMP erstellen. Das auslesen und zum µC schicken. Hört sich vielelicht einfacher an als es ist, aber wenn du programmieren kannst bekommst du das schon hin ;)
Oder halt das Programm suchen. Ich glaube es erzeugt eine .HEX voller 0 und 1.
-
Das Bild soll aber am uC drauf sein das ding hat später keine verbindung zum pc mehr
-
Hallo,
ja, das geht mit einem Array. Das Bild muss erst umgewandelt werden. Such mal nach BMP2C. Das erzeugt Dir ein Array. Dieses kann man dann wieder Bitweise(langsam) oder Byteweise aufs Display bringen:
Code:
for(zeile=0;zeile<testbildHEIGHT;zeile++)
{
for(spalte=0; spalte< testbildBYTEWIDTH ;spalte++)
{
glcd_gotoxy(spalte+1+xpos,zeile+1+ypos,0);
//Geht an Position x,y - inkl. Korrekturwerte
glcd_WriteCmd1(testbildbmp[(int16)zeile*testbildBYTEWIDTH+(int16)spalte],0xc0);
//schreibt ein komplettes Byte aus dem Array
}
}
So hab ichs gemacht