Guten Tag. Ich bin ja dabei das Tutorial durch zu gehen, und da habe ich nun nochmal wieder eine Frage ^^. Im Tutorial steht dass das LF (ASCII 0A) für Zeilenvorschub steht. Also verstehe ich das so dass wenn ich in der oberen Reihe schreibe, einen LF mache und dann weiter schreibe das in die untere Reihe geschrieben wird. Leider funktioniert das bei meinem Display nicht so. Ich habe die lcd-routines.asm wie im Anhang und schreibe zur Ausführung: ldi temp1, 0x0A rcall lcd_data Ich habe bereits das Datenblatt rausgesucht für den Controller (S6A0069X) welcher zweimal auf der Platine vorhanden ist (nehme mal an E1 und E2) sowie (S6A2067X) welcher dreimal auf der Platine vorhanden ist (so wie ich verstehe damit der S6A0069X über diesen ausreichend Pixel ansteuern kann. Leider werde ich aus den Datenblättern nicht schlau wie ich in die zweite Zeile springen kann. Habe da zwar sowas gefunden wie DDRAM, aber leider nicht welche Adresse für welche Position steht, wie sich die Adresse pro "Byte" verändert. Ich kann zwar in die zweite Zeile indem ich die erste vollschreibe (40 Zeichen) aber das ist ziemlich umständlich. Display ist ein Displaytech 404B. Mehr steht leider nicht drauf. Controller ist HD44780 kompatibel. (Codebelegung des Displays angehängt, da drei verschiedene Vorhanden)
Hi LC-Displays kennen $0A nicht. Du musst den Cursor manuell auf den Anfang der 2.Zeile setzen. Füge mal das Unterprogramm in deine Code ein
1 | go_to: push temp1 |
2 | ori temp1, 0b10000000 ; Set DDRAM |
3 | rcall lcd_command |
4 | rcall delay5ms |
5 | pop temp1 |
6 | ret |
mit
1 | ldi temp1,$40 |
2 | rcall go_to |
kommst du an den Anfang der 2.Zeile MfG Spess
Kann man da auch ldi temp1, $C0 rcall lcd_command rcall delay_5ms machen? Spart man paar Zyklen push ori pop Und natürlich den Sprung zum Unterprogramm go_to
Nochmal ne andere Frage: Der ASCII Code für das "ä" ist falsch, sodass ich den manuell einfügen muss (E1) .. kann ich das irgendwo hinterlegen?
Hi >Kann man da auch >ldi temp1, $C0 >rcall lcd_command >rcall delay_5ms >machen? Kann man. Nur dem Code von mir wird die Adresse übergeben. Damit kann man auch an andere Stellen springen. MfG Spess
Hast recht ... ein wenig komisch aber man kommt mit zurecht ^^. Mein Display geht ja bis $27 .. bei $28 schreibt er alles in die zweite Zeile. Bei $29 auch, aber bei $30 zeigt er nichts an. Bei $38 schreibt er einen Buchstaben nicht, bei §39 und §40 schreibt er alles in die zweite Zeile .... Naja soll mir egal sein .. ich kan es ausreichend positionieren.
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.