Hallo Harry.
Quote by Harry
Column-Adress ist immer $00,$10 (falls das Display so gebaut wurde, daß bei X=0 auch das Display-RAM=0 ist. Ich hab ein Display hier, bei dem wurden die ersten 16 Column-Treiber nicht angeschlossen
.
Row-Adress ist $60 or ($0F and Data), $70 or (($0F and Data) shr 4))
Nein, ich habe die Funktion so programmiert, das oben Links 0,0 ist. In der Funktion wird dann der Command mit dem MSB/LSB gesendet. Das Display kann einen Virtuellen-Windowbereich erstellen und auch einen Scrollbereich.
Code
//--------------------------------------------------------------
// Setze auf Spalte / Reihe
//
procedure display_address( DispSpalte : byte; DispZeile : Byte);
var
LSB : BYTE;
MSB : BYTE;
begin
// Spalte/Col=0 to 263 Zeile/Row=0 to 63
// Displayspalte / Column address LSB
LSB:= DispSpalte AND $0F;
WriteLCD( $00 OR LSB, false );
// Displayspalte / Column address MSB
MSB:= (DispSpalte AND $F0) SHR 4;
WriteLCD( $10 OR MSB, false );
// Displayzeile / Row address LSB
LSB:= DispZeile AND $0F;
WriteLCD( $60 OR LSB, false );
// Displayzeile / Row address MSB
MSB:= (DispZeile AND $F0) SHR 4;
WriteLCD( $70 OR MSB, false );
end display_address;
Quote by Harry
Define hast du linear gewählt?
Ja, das Display habe ich auf linear eingestellt, aber man kann den Controller auch auf Column umstellen.
Quote by Harry
noch was: hast du da ein gDrawRect(0,0,263,63,$FF) in deinem Programm? Wenn ja stimmt was noch nicht. So wie das aussieht fehlen die beiden senkrechten Linien davon.
Ist angepasst, hatte von 0..256 gestellt
Ein Problem habe ich bei dem Controller festgestellt, man muß immer 3 Byte senden, damit die Daten richtig angezeigt werden. Da der AVRCO aber am Ende nur ein Byte sendet und dann den Zeilenwechsel CMD0 veranlasst wird die letzte Spalte verschluckt. Egal was ich gemacht habe, das habe ich nicht in den Griff bekommen. Wenn ich alle Daten am Stück durchschreibe, macht das Display automatisch einen Zeilenwechsel dann klappt alles. Aber was soll es, bei 256 Spalten fehlt halt die letzte Spalte. Dafür kann man die ganzen fertigen Funktionen vom AVRco nutzen.
Code liegt im Softwarebereich.
Dir nochmals vielen Dank für die Infos und Hilfen.
Thorsten