LCD erste Zeile adressieren -> Fehler

Gast #353949
Hi,
bin noch Einsteiger und spiele derzeit mit dem Atmega8 rum. Habe mir
eigenständig eine LCD für ein 4x16 dot matrix display mit HD44780A
Controller gebastelt und bin derzeit dabei noch ein bisschen etwas
einzubauen... habe ein Makro entwickelt, mit dem ich texte senden kann,
dann die zeile ansage und schließlich die leerzeichen in der Zeile,
bevor der text geschrieben wird.
Das ganze klappt in den Zeilen 2-4 auch wunderbar.
Nur in Zeile 1 funktioniert das überhaupt nicht. Entweder er ignoriert
die Leerzeichen einfach und fängt an Position 1 an oder er gibt
Schriftzeichensalat raus bzw. nur den ersten Buchstaben oder andern
mist.
Weiß jmd. vielleicht was ich noch falsch gemacht haben könnte?
Der Code liegt als Anhang bei. Ich entschuldige mich jetzt schon mal
für meinen wahrscheinlich sehr newbischen und dreckigen code.
Angehängte Dateien:
Gast #353950
.EQU Z1 = $00  ; Zeile 1 = $00
.EQU Z2 = $C0  ; Zeile 2 = $C0
.EQU Z3 = $90  ; Zeile 3 = $90
.EQU Z4 = $D0  ; Zeile 4 = $D0

Nimm mal für Z1 den Wert $80.
Gast #353951
Vielen Dank!
Jetzt gehts! Aber würde mich trotzdem mal interessieren, wo das im
Datenblatt steht, hatte nämlich schon vermutet, dass die $00 falsch
sind, konnte aber kein Ersatz im Datenblatt finden.
Gast #353952
$80 = Binär 10000000. Das gesetzte 7.Bit zeigt dem Display-Controller
an, dass die Display-RAM Adresse gesetzt werden soll. Bei den anderen
Positionen sieht man auch, dass immer das 7. Bit gesetzt ist. Lässt man
das weg, bekommt man die tatsächlichen Adressen im Display RAM:
Zeile1 = $00, Zeile2 = $40, Zeile3 = $10, Zeile4 = $50. So sieht man
auch, dass die dritte(!) Zeile direkt im Anschluss auf die erste Zeile
folgt, d.h. wenn man mehr als 16 Zeichen in die erste Zeile schreibt,
kommen sie in der dritten heraus.
Steht mit Sicherheit im Datenblatt, hast Du wahrscheinlich übersehen
;)
Schau Dir mal genau die Tabelle mit den Commands an.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.