Hi
ich versuche zurzeit ein grafik lcd (das DG12232, das soweit ich gelesen
hab zwei SED1520 controller nutzt) mit einem Mega 8 in C anzusteuern
(Takt 1 Mhz).
Allerdings stecke ich dabei gerade fest und weiß nicht weiter.
Die Kontrastspannung hab ich erzeugt, alles soweit ichs verstanden hab
verkabelt und die C Library von hier verwendet:
http://en.radzio.dxp.pl/sed1520/
(Hat die schonmal jemand benutzt?)
Ein Beispiel wie man die lib verwendet hab ich dort leider nicht
gefunden, momentan sieht der code bei mir so aus:
1 | GLCD_InitPorts();
|
2 | GLCD_Init();
|
3 | GLCD_ClearScreen();
|
4 |
|
5 | while (1){
|
6 | for (x=0;x<122;x+=3){
|
7 | for (y=0;y<32;y+=3){
|
8 | GLCD_SetPixel(x,y,1);
|
9 | _delay_ms(100);
|
10 | }
|
11 | }
|
12 | GLCD_ClearScreen();
|
13 | _delay_ms(1000);
|
14 | }
|
Er zeichnet auch was, aber statt jedes 3. pixel zu setzen zieht er solch
einen streifen übers bild:
http://www.imagebanana.com/view/x4m4v34f/fehler1.jpg
Die grafik lib setzt einen pixel, indem sie anscheinend die daten vom
display liest (immer ein byte), den pixel mit "or" draufpackt und das
ganze zurück zum display schickt.
Wenn ich das Auslesen auskommentiere sieht das Bild so aus:
http://www.imagebanana.com/view/c5man1/fehler2.jpg
Das entspricht fast dem was ich erwarten würde, es wird halt immer nur
ein Pixel aus dem Byteblock gesetzt, die andern beim Setzen des letzten
natürlich überschrieben...
Die Frage ist jetzt was mach ich falsch?
Stimmen die Befehle nicht, muss ich mit der Lib anders umspringen?
Oder könnte es an einer falschen oder zu langen Verkabelung liegen?
Vom Display sind A0, RW, RES und CS1, CS2 angeschlossen.
CS1 und CS 2 heissen in der lib E1 und E2 aber ich nehm mal an die
bezeichnungen sind äquivalent oder?
Wäre wirklich nett, wenn sich das mal jemand angucken könnte und mir ein
wenig mit dem ding hilft :)