Hallo miteinander, Habe ein kleines Problem mit meinem neuen 2x20 Display. Das Display wird über einen SPLC780D Controller angesprochen. Der Befehlssatz scheint soweit aber zum HD44780 kompatibel zu sein. Angezeigt wird auch was, nur leider das Falsche. Wenn ich mit dem Quellcode aus dem Tutorial arbeite, wird mir anstatt "Test" nur " !30" auf dem Display angezeigt. Habe schon sämtliche Zeichen durchprobiert, immer werden andere Zeichen ausgegeben, als ich eingegeben habe. Wo ist hier das Problem. Kann mir vielleicht nebenbei noch jemand erklären, was die letzten drei Befehle in den LCD Routinen aus dem Tutorial bezwecken, die nur mit dem Kommentar "noch was einstellen" versehen sind? Gruß Crush
Hallo, finde in einem Tutorial auch ...naja... etwas sparsam kommentiert. Im Zweifel immer das Datenblatt zum Controller befragen, da sind die Init-Abläufe normalerweise brauchbar kommentiert. Aus meinem Init zum HD44780: ldi TEMP_A,$38 ; 8Bit - Mode, 2 Zeilen rcall lcd_control ldi TEMP_A,$06 ; Increment, Not Shiftet rcall lcd_control ldi TEMP_A,$10 ; Cursor Move, Shift off rcall lcd_control ldi TEMP_A,$0C ; Display an, Cursor aus rcall lcd_control ldi TEMP_A,$01 ; Display löschen rcall lcd_control sollte etwa dem Tutorial entsprechen, sonst selber vergleichen. ;) Gruß aus Berlin Michael
Wenn ich mir die Hex-Werte ansehe: T = $54 <-> (blank) = $20 (und kleiner) e = $65 <-> ! = $21 s = $73 <-> 3 = $33 t = $74 <-> 0 = $30 kommt mir der Verdacht, dass die Datenbits 2 und 6 nicht bzw. immer als Null rüberkommen... Und wenn Du das 4bit Interface benutzt, reicht dafür schon eine einzige Leitung (D6 am LCD). Gruß Johannes
Danke euch beiden, habt mir sehr geholfen. @Michael: Mit den Hinweisen kann ich mir den Rest jetzt zusammensuchen. @ Johannes: Das war der entscheidende Hinweis. War kein Softwareproblem, sondern ein Kurzschluss zwischen zwei Pins. Den kurz behoben, jetzt läuft es. Gruß Crush
Michael U. Könntest du deine LCD initalisierung mir vieleicht grad in Assambler code aufschreiben? oder einen Befehl übersetzen die andern sind ja fast gleich "ldi TEMP_A,$38 ; 8Bit - Mode, 2 Zeilen rcall lcd_control" Das wäre nett ich bekomm nämlich mein LCD garnicht erst initialisiert :P Danke Ciao Sebastian
Hallo, @Sebastian: das ist Assembler... Ich habe mal das Projekt (WinAVR) komplett rangehangen. Spiele ich zum Testen unbekannter Displays immer auf irgendeinen AVR, im Moment ein Mega8515, und stecke den Kram an mein STK200. ldi TEMP_A,$38 ; 8Bit - Mode, 2 Zeilen rcall lcd_control Die Subroutine ist im besagten Archiv mit drin, schickt das Controlword aus TEMP_A zum Display. TEMP_A ist ein beliebiges Reguster des AVR, meine benutzten Definitionen sind oben mit drin. Die $38 (oder 0x38) oder die anderen Controlwords mal zerlegen, also als Binär aufschreiben (0b00111000) und mit den Displaybefehlen im Datenblatt des Controllers vergleichen. Gruß aus Berlin Michael
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.