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.
.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.
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.
$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.
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.