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 Vorgeschichte
mein 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
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
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.
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
Lesezeichen