www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD erste Zeile adressieren -> Fehler


Autor: Fabian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.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.

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.