Forum: Compiler & IDEs GrafikLCD an ATmega328


von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen!

Ich hoffe ich poste meine Frage hier im richtigen Forumsbereich. 
Folgendes Problem:

Ich habe hier ein Grafikdisplay Typ PG192128B (192x128 dots, Datenblatt 
im Anhang) und versuche dieses mit einem ATmega328P anzusteuern. Den 
Quellcode habe ich von 
http://www.frozeneskimo.com/electronics/2007/03/30/lc7981hd61830-driver-for-el-backlit-samsung-lcd/. 
Diesen habe ich ein wenig auf meinen Controller angepasst. Ich benutze 
den PortC für die Displaysteuerung, die Ports -B und -D für die 
Datenübertragung (PortB untere 4Bit PortD obere 4Bit). Es funktioniert 
auch im Prinzip alles genauso wie ich mir das vorstelle, doch leider 
immer nur bis Pixel 159, ab 160 verrutscht er um eine "Zeile" nach unten 
und springt 2Byte weiter nach rechts, also auf Pixel 175, egal in welche 
"Zeile" ich schreibe. Die Eckdaten des Displays sind alle richtig 
eingetragen, und auch die gesammte Initialisierungsroutine ist mit dem 
Datenblatt stimmig (für Grafikbetrieb). Ich weiss keinen Rat mehr. Habt 
Ihr eventuel einen Tip für mich?


Vielen Dank für Eure Mühe

Greetz Daniel

von Thomas (Gast)


Lesenswert?

Hallo Daniel,
ich verzweifele gerade an der gleichen Aufgabe.
Ein Problem scheint die Umschaltung der Zeilendecoder (80+48) und der 
Spaltendecoder (80+80+32) zu sein. Das Display-Datasheet gibt dazu 
nichts her.
Ich kann nur in der linken oberen Ecke des Displays rummalen.
Gibts bei dir schon Fortschritte?
Beste Grüsse
Thomas

von Jochen (Gast)


Lesenswert?

Hallo,
wenn es die PG192128B sind, die es z.Zt. bei ebay für knapp 10€ gibt, 
dann haben die eventuell einen Fehler in der Dekodierung wenn x > 159.
Probiert die mal im Textmodus aus. Da tritt dieser Fehler auch auf.
Gruss
Jochen

von leluno (Gast)


Lesenswert?

habe ein winstar 160x160 mit lc7981, Ansteuerung funktioniert bis Zeile 
130. Ab Zeile 130 wird der Inhalt von Zeile 0-30 erneut angezeigt. 
CS-Chipselect wird im übernommenen Code nicht angesteuert sondern auf + 
gesetzt. Weiß jemand, wie CS für den unteren Teil des LCD verwendet 
werden kann??

von leluno (Gast)


Lesenswert?

mein Problem ist geklärt, im Code von Sergeev ist der timeshift mit 
128-1 angegeben, müsste für mein Display 160-1 sein. Cs muss nicht 
angesteuert werden, da nur ein chip. cs, rw u. rst werden im code nicht 
verwendet und gehören daher auf --+.

von G_P (Gast)


Lesenswert?

Hat von euch mittlerweile einer eine lösung gefunden??

gruß

von Karl K. (leluno)


Lesenswert?

problem dürfte an variablenüberlauf liegen, unsingned char durch 
uint16_t ersetzen. geht dann zumindest bei lcd 160x160 problemlos

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.