Forum: Mikrocontroller und Digitale Elektronik glcd aufteilung pixel problem


von rene_s (Gast)


Lesenswert?

Hallo, bin gerade dabei ne eigene lib für das glcd mit ks0801 controller 
von pollin zu schreiben. Habe jetzt zwei probleme

Erstens verstehe ich die einteilung der pixel  nicht richtig. X ist im 
datenblatt y , y ist x und dann gibts noch z, die pages...

Habe schon verstanden, dass es 8 pages gibt, die unterteilt sind in 8bit 
und die jeweils angewählte meinem datenport entspricht. Die zeilen 
größer als 63 werden von dem zweiten controller gesteuert werden.
Wofür ist dann aber der y wert? Macht  der so ne art offset?  Wie kann 
ich pagesübergreifend  diepixel ansteuern

Und noch eine frage: ich färbe das glcd momentan so, dass ich in die 
jeweilige page und zeile gehe,  und 0xff auf den datenbus lege. 
Funktioniert auch gut. Beim rumprobieren habe ich dann mal spasseshalber 
0xaa reingeschrieben, also jede zweite zeile schwarz gefärbt. Dabei 
passierte folgendes: mit jeder page wurden die gesetzten pixel dunkler. 
Das phänomen ist controlerweise zu beobachten. Warum ist das so, ist das 
normal?
Ich habe vorher die lib von ape benutzt, diese produziert bei mir jedoch 
zeilenfehler. Die funktion ks0108drawline färbt bei mir die 
entsprechende page ein, jedoch nicht eine einzelne zeile.
Stimmt evtl was mit meinem glcd nicht?

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Schlechte Voraussetzungen.

http://www.compsys1.com/workbench/On_top_of_the_Bench/KS0108/ks0108_controller.html

+--Controller 1---|--Controller 2--+
|----------------X---------------->|
|
|
Y
|
|
|

von Spess53 (Gast)


Lesenswert?

Hi

>Hallo, bin gerade dabei ne eigene lib für das glcd mit ks0801 controller
>von pollin zu schreiben.

Den Controller kennt noch nicht einmal Gurgel.

MfG Spess

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Wenn Du keinen Puffer-Speicher verwenden willst mußt Du Spalte+Page 
einlesen, manipulieren und zurückschreiben.

Bit 0 repräsentiert in der Page die Pixel Y=0 in Page 0,Y=8 in Page 
1,Y=16 in Page 2
Bit 1 Y=1,9,17 usw.
Bit 7 Y=7....

von rene_s (Gast)


Lesenswert?

Ich meinte natürlich ks0108, den standart controller hald...

Spess53 schrieb:
> Hi
>
>>Hallo, bin gerade dabei ne eigene lib für das glcd mit ks0801 controller
>>von pollin zu schreiben.
>
> Den Controller kennt noch nicht einmal Gurgel.
>
> MfG Spess

von rene_s (Gast)


Lesenswert?

Ich kann also nicht einfach mit y in die zeile 10 springen und dort 8 
bit reinschreiben, sondern muss umrechnen und in entsprechende pages 
springen? Hab ich gerade probiert, dann zerreist mkrs aber das bild. 
Wofür gibts dann set y in der cmd liste? Hier kann ja auch 64 
reinschreiben. Und was ist mit dem kontrast problem?

Dennis Heynlein schrieb:
> Wenn Du keinen Puffer-Speicher verwenden willst mußt Du Spalte+Page
> einlesen, manipulieren und zurückschreiben.
>
> Bit 0 repräsentiert in der Page die Pixel Y=0 in Page 0,Y=8 in Page
> 1,Y=16 in Page 2
> Bit 1 Y=1,9,17 usw.
> Bit 7 Y=7...

von Oliver (Gast)


Lesenswert?

Hi

Soweit ich das in meiner lib (http://code.google.com/p/u8glib/) 
umgesetzt habe, ist es so:
Es muss der Controller, die "page" und eine "Spalte"angegeben werden: 
Die Spalte geht von 0 bis 63 und entspricht beim linken Controller dann 
dem x-Wert. Der x-Wert (Spalte) wird im Datenblatt unglücklicherweise 
als y-Adresse bezeichnet, gemeint ist aber die Spalte oder X-Adresse 
(hex 0x40 verODERt mit der spalte).

Oliver

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.