Hallo,
zur Zeit versuche ich dieses LCD am laufen zu bekommen.
Ein Problem gibt es mit DDRAM Adressierung und zwar ist es eigentlich ein 2x8 Zeichen Display wo Zeichen 0-7 An der DDRAM Adresse 0-7 liegen und Zeichen 8-15 an 40-47
Soweit so gut,
ich sende Zeichen über UART, und die werden schön an der aktuellen Cursorposition dargestellt und der DDRAM wird schön inkrementiert.
Jetzt habe ich natürlich den Wunsch den Cursor an einer beliebigen Stelle im LCD zu setzen.
Dafür wird ein Befehl per UART gesendet und hinterher die neue Position zwischen 0-15.
Um den Cursor an eine Stelle im DDRAM zu positionieren sendet man halt ein Command(RS Low) mit gesetztem Bit 7 + die gewollte Adresse.
So, soviel zur Vorgeschichtemein Problem jetzt, es klappt nicht ganz
und zwar werden die Adressen 0-7 sauber angefahren, die 40 auch noch, nur alles was über 40 ist nicht, der Cursor bleibt stur an der Adresse 40 stehen
Angesteuert wird das ganze mit diesem Code
Mein Logik sagt, es ist richtig, AVR-Studio Simulator schickt mir auch immer die gewollte Adresse an LCD_command nur das Display tut es nicht.Code:loop_1_2: cpi tmp1,SET_CURSOR brne loop_1_3 lds tmp1,Befehl_Puffer;Nur Spalten auslesen, der Rest ist erstmal uninteressant ldi param1,0x80 ;Adresse 0 cpi tmp1,8 ;testen ob wir unter 8 sind brlo loop_1_2_1 ;wenn ja springen ori param1,0x28 ;wir sind ueber 7 die DDRAM liegt ueber 0x28 subi tmp1,8 ;dann noch 8 abziehen loop_1_2_1: add param1,tmp1;Jetzt steht die Adresse mov Zeichenzaehler,param1 ;sichern rcall LCD_command ;und ab aufs Display rjmp loop
Dann hab ich noch eine Zweite Funktion geschrieben wo ich per UART direkt ein Komando an das Display schicken kann, mit dem gleichem Ergebnis, 0-7 und 40 funktioniert der Rest nicht.
So jetzt meine Frage, kennt jemand so ein Verhalten und kann mir weiterhelfen, das ist echt doof, sonst klappt alles, auch die Adressierung von CGRAM, ich weiß wirklich nicht mehr weiter![]()
Gruß Sebastian
P.S.
Ich glaub es ist nicht unbedingt wichtig, aber Das Display wird von einem Tiny 24 in 4 Bit Modus angesteuert







mein Problem jetzt, es klappt nicht ganz
Zitieren


Lesezeichen