hi weiß jemand woran das liegt, dass im hinteren bereich die Spalten nicht stimmen?
hi weis jemand woran das liegt, dass hier ständig unvollständige Fragen gestellt werden und man eine Glaskugel braucht, um nur annähernd zu erkennen, um was es geht? Displaytyp? Beschaltung? Prozessor? Code? usw. ist das denn soo schwer??
lass mich mal raten? Hmm, der Wind kommt aus Osten, wir haben 5 Grad, drausen fliegt n Vogel vorbei? Hmm. Schwierig. Ich würde sagen: nein, das kann dir niemand sagen!
ja das dachte ich fast schon. :-) sorry also das Display hat einen LC7981 drauf. die Routinen hab ich von der www.frozeneskimo.com angesteuert wird es mit einem ATMega 16.
also das Display hat 192x128 Pixel. die Ausgabe ist: g_draw_rectangle(0,0,192,128); g_draw_string(0,64,"abcdefghijklmnopqrstuvwxyz,1234567890")
Hi
>g_draw_rectangle(0,0,192,128);
Wenn die Funktion g_draw_rectangle(x1,y1,x2,y2) lautet, ist der obige
Aufruf falsch. Deine Zeilen gehen von 0..127 und die Spalten von 0..191.
MfG Spess
Vielen Dank für den Tipp, leider ändert das nichts. Das Problem tritt mit dem 108 ten Zeilen Dot auf. Ab da wird irgendwie alles verschoben. Jetzt besseres Bild Ausgabe ist jetzt: g_draw_rectangle(0,0,191,127); g_draw_string(0,64,"12345678901234567890123456789012"); eine zahl ist 4 Dot breit; das 107. wird noch richtig dargestellt.
Hi Dann ist möglicherweise dein Controller falsch initialisiert. Was ist denn als Character-Pitch eingestellt? Mache evtl. noch mal ein ordentliches Bild. MfG Spess
Hi Würde ich mal auf 8 stellen. Ich habe das Datenblatt vom LC7981 nur mal kurz überflogen. Aber von anderen Controller weiß ich, das sich der Character-Pitch auch auf die Grafik auswirkt. MfG Spess
Hab ich jetzt versucht, bringt aber keine Besserung! übrigens tritt der Fehler in Spalte 160 auf!
Hi Lt. Datenblatt kann der LC7981 nur Character-Mode oder Grafik-Mode. Aber nicht beides gleichzeitig. Da in deinem Bild beides zu sehen ist werden die Zeichen wohl per Software erzeugt und der Controller befindet sich im Grafik_Mode. Dazu muss Horizotal-Pitch zwingend 8 und die Anzahl der Zeichen/Zeile bei deinem Display 24 sein. Ist dem so? MfG Spess
ja das ist völlig richtig was du sagst! -und ja hab ich auf 0x18 eingestellt (=24) Die Routinen sind für ein 160x80, und ich hab es für meins (192x128) abgeändert. könntest du mal vollgendes anschauen: void lcd_graphics_move(unsigned short x, unsigned short y) { unsigned short pos; /* Calculate the raw address in terms of bytes on the screen */ pos = ((y*LCD_WIDTH)+x)/8;<----------- /* Move the cursor to the new address */ lcd_write_command(LCD_CMD_CURSOR_LA, pos&0xFF); lcd_write_command(LCD_CMD_CURSOR_HA, pos>>8); } das ist praktisch die Cursor Position. da wo ich den pfeil hingemacht hab verstehe ich nicht. Ich kann auch im Datenblatt nicht finden, was im Grafikmodus genau geschrieben werden muss.
Hi >Die Routinen sind für ein 160x80, >und ich hab es für meins (192x128) abgeändert. Anscheinend nicht vollständig: >übrigens tritt der Fehler in Spalte 160 auf! >da wo ich den pfeil hingemacht hab verstehe ich nicht. >Ich kann auch im Datenblatt nicht finden, was im Grafikmodus genau >geschrieben werden muss. Das ist die Umrechnung x,y in Pixeln in die Display-RAM-Adresse in Byte. Ein Byte im Displayram enthält 8 nebeneinander liegende Pixel. Der LC7981 ist übriges identisch mit dem HD61830 von Hitachi. Könnte einen evtl. Suchradius erweitern. MfG Spess
Hi Ich schrieb: >Dazu muss Horizotal-Pitch zwingend 8 und die Anzahl der >Zeichen/Zeile bei deinem Display 24 sein. Der Befehl 'Set Number of Characters' erwartet (Bytes/Zeile)-1. Also ist der richtige Wert 23. MfG Spess
Hey vielen Dank für den Tip. Es stimmt, aber es ist ja auch auf 0x07 eingestellt. Das Problem jetzt mal konkreter: -bis zum Pixelbyte 20 stimmt alles(also bis Pixel Nr. 160) in den darunterliegenden Zeilen passt es auch bis zu dem Byte -nur die hinteren 4 Byte passen immer nicht -und zwar wird Byte 21,22 um 2 Byte nach rechts verschoben, dh diese kommen an die Stelle 23,24 -Die Byte 23,24 werden auf Platz 21,22 UND eine Zeile weiter nach unten verschoben Die Cursor Berechnungen in der Software müssten soweit stimmen. Noch irgendwelche Ideen? Vielen Dank
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.