hm also die anderen probleme die ich gestern und heute hier gepostet hab scheinen im mom wengistens gelöst zu sein ... leider gibts gleich das nächste. die ausgabe auf meinem 2*16 lcd funktioniert wunderbar. nur leider spinnt es völlig wenn ich die zeile wechsle. wenn ich aus zeile eins in zeile 2 springe, gibt er, wenn ich einen string ausgebe, diesen irgendwo in der mitte beginnend aus. also aus "Hallo Welt" kann z.B. " Welt" werden. wenn ich über die erste zeile einfach hinaus schreibe, also ohne manuellen zeilenwechsel, verschluckt er einfach alle zeichen > 16. (das display hängt an PORTA. wobei PORTA0-PORTA3 am 4bit-bus hängen und PORTA4 an RS & PORTA5 an E); mein befehl zum zeilenwechsel: lcd_send_cmd(0xa0); 0x80 für den dd-befehl und 0x40 um das erste zeichen in zeile 2 zu adresieren = 0xa0 wobei lcd die ausgabe der 2 nibbles erledigt. gruß & thx im vorraus markus
Schau mal in das Datenblatt deines LCDs. Dort findest du die RAM-Adressen für dein LCD (ist eine Tabelle). Ich gehe mal davon aus, dass deine Zeilenanfangsadressen im Code nicht mit denen im Datenblatt übereinstimmen. Gruss, Alex
0x80 + 0x40 gibt immer noch 0xc0 und nicht 0xa0 ! Die Adresse 0xa0 ist im nicht sichtbaren Bereich der ersten Zeile. Nach 40 Zeichen also nach 0xa7 kommt der Zeilenumbruch. Daher sieht man die erten 8 Zeichen von "Hallo Welt" nicht. Einach weiterschreiben geht nicht, weil das Display intern das Format 2 x 40 Zeichen benutzt. Von beiden Zeilen sind jedoch nur die ersten 16 zu sehen. Man könnte auch einfach 24 Leerzeichen dazwischenschieben...
oh man bin ich blöd.... :) ich hatte schon ins DB geguckt und die richtige adresse rausgesucht,,,,nur wenn man zu doof zum addieren ist hilft das nix... thx auf jeden fall :)
Hier mal mein Macro zum Position setzen für ein 2*16-Display: .macro lcd_pos ;00 ... 1F ldi a0, 0x80 + @0 + @0 / 0x10 * 0x30 rcall lcd_command .endmacro Peter
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.