Forum: Mikrocontroller und Digitale Elektronik Lcd die 1000ste


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Marcus K. (marcus_k913)


Lesenswert?

Hallo,

Ich bin gerade am verzweifeln.

Ich habe ein 4x20 Display mit dem st7066 und es Funktioniert auch 
Wunderbar.

Es hängt an einem 328pb und ich schreibe in Luna(ja ...sagt nix,Ich 
fühle mich wohl mit der Sprache)

Ich benutze zwar die Bibliothek für den HD 44780 zudem der st7066 
Kompatibel sein soll,aber die setzt (oder ich bin zu lange raus aus dem 
Thema gewesen) vorraus das ich die Zeichendefinition schon im Flash 
hinterlegen muss.

Das Funktioniert aber nicht, da sie zur Laufzeit definiert werden.

Ich habe es auch schon "Zu Fuss" probiert,jedoch bekomme ich im Besten 
Fall nur 1 Zeichen Definiert.

Hat jemand einen Heißen Tip für mich?

von Harald K. (kirnbichler)


Lesenswert?

Marcus K. schrieb:
> aber die setzt (oder ich bin zu lange raus aus dem
> Thema gewesen) vorraus das ich die Zeichendefinition schon im Flash
> hinterlegen muss.

Welche Zeichendefinition? Der verwendete Zeichensatz ist fest im HD44780 
codiert, um den musst Du Dich nicht kümmern.

Oder meinst Du die 64 Bytes für acht nutzerdefinierte Zeichen, die der 
HD44780 mitbringt?

von Marcus K. (marcus_k913)


Lesenswert?

Nein ich meine nicht den Fest definierten.

Ich meine schon die Zeichen die ich dem LCD-Controller definieren kann.

Wie gesagt im groben läuft das Display wie es soll.

Nur da hakts halt.

Und aus dem Datenblatt werde ich nicht wirklich schlau genug.Oder ich 
bin zu doof.

von Rainer W. (rawi)


Lesenswert?

Marcus K. schrieb:
> Und aus dem Datenblatt werde ich nicht wirklich schlau genug.

In welches Datenblatt guckst du denn rein?
Wenn du nach "custom characters HD44780" suchst, finden sich doch genug 
Informationen zu dem Thema in fast beliebigen Sprachen, z.B.
https://www.digikey.de/en/maker/tutorials/2022/create-custom-characters-using-a-common-16x2-liquid-crystal-display

: Bearbeitet durch User
von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Marcus K. schrieb:
> ich schreibe in Luna

Poste mal das Programm als Dateianhang, sonst gibt das nur Rätselraten.

Harald K. schrieb:
> Oder meinst Du die 64 Bytes für acht nutzerdefinierte Zeichen, die der
> HD44780 mitbringt?

In ASM sieht das so aus wie im Anhang.
Der Clou, man muss Steuerwort richtig setzen. Sonst ist man im anderen
Controlset drin.
Userdefinierte Charakters:
Bei den meisten LCDs können die im ASCII-Fernschreibcode als 
Verbindungsstatus"- und "Steuerzeichen" eigentlich hierbei unbenutzt 
gebliebenen Codes hex 00 bis hex 07 als freie Adressen zur 
Zwischenspeicherung von selbst definierbaren Zeichen verwendet werden. 
Das Charakter-RAM besitzt also auf den ASCII-Codes hex 00 bis hex 07 
acht freie Speicherpositionen, denen man jeweils Charakters fest 
zuordnen kann, die auf der 5x7-Dotmatrix pixelweise selbst erstellt 
wurden. (Wenn man den Cursorbereich dazurechnet, sind es sogar acht 
Zeilen.) Dazu sind pro Zeichen (nach Setzen des Steuerbefehls) noch 
insgesamt acht Schreiboperationen nötig.

Zunächst sendet man im Kommandomodus (RS auf "low") den 
Steuerbefehlssatz:

  DB7  DB6  DB5  DB4  DB3  DB2  DB1  DB0
  L  H  X  X  X  X  X  X  = „set CGRAM address

DB6 = high => Set CGRAM address  (ca. 50 Mikrosekunden)

ldi  temp,  0x40
rcall  kommando

und legt so erst einmal das erste neu zu erstellende Zeichen auf den 
ASCII-Code hex 00 fest.

Irgendwie ähnlich wird sich das Problem des TO lösen lassen.

ciao
gustav

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

Karl B. schrieb:
> In ASM sieht das so aus wie im Anhang.

Das wird ihm herzlich wenig helfen, denn

Marcus K. schrieb:
> ich schreibe in Luna

von Karl B. (gustav)


Lesenswert?

Wastl schrieb:
> Marcus K. schrieb:
>> ich schreibe in Luna

ganz oben schon erwähnt.
Aber Luna wird mit demselben Problem zu kämpfen haben, das sich aus der 
Vorgabe des HD44780 ergibt. Das ST7066 ist quasi dasselbe.

Um fortzufahren: Man gibt Steuerzeichen ein und für die folgenden immer 
8 Bit noch drauf.
Für Ascii 00 also hex 40
für 01 hex 48
für 02 hex 50 etc...

ciao
gustav

von Rainer W. (rawi)


Lesenswert?

Wastl schrieb:
> Karl B. schrieb:
>> In ASM sieht das so aus wie im Anhang.
>
> Das wird ihm herzlich wenig helfen, denn

Wer die paar Zeilen Assembler nicht versteht, sollte vielleicht lernen, 
über seinen Horizont hinaus zu gucken und erstmal an seinem "Wortschatz" 
arbeiten.

von Wastl (hartundweichware)


Lesenswert?

Rainer W. schrieb:
> und erstmal an seinem "Wortschatz" arbeiten.

Selbsterklärend:

Marcus K. schrieb:
> Und aus dem Datenblatt werde ich nicht wirklich schlau genug.Oder ich
> bin zu doof.

von Marcus K. (marcus_k913)


Lesenswert?

Also ich kann andere Sprachen schon Herleiten.


Ich brauche nur einen Groben "Fahrplan"

Im groben Versuche ich ein Matrix-Orbital Display nachzubauen(for the 
fun of it)


Ich schaue nachher mal über Antworten,danke erstmal 😊

von Harald K. (kirnbichler)


Lesenswert?

Marcus K. schrieb:
> Ich brauche nur einen Groben "Fahrplan"

Zeig. Deinen. Quellcode.

von Wastl (hartundweichware)


Lesenswert?

Marcus K. schrieb:
> Also ich kann andere Sprachen schon Herleiten.

Was auch immer du damit meinst, du wirst es nicht können,
jedenfalls nicht in absehbarer Zeit.

Du schaffst es ja bis jetzt nicht mal dein Problem so umfänglich
darzustellen dass irgendjemand eingreifen und dir "nur einen
Groben Fahrplan" geben kann. Die müden Ansätze dir ein Asemmbler-
File vor die Füsse zu werfen zählen da sicher nicht dazu.

von Wastl (hartundweichware)


Lesenswert?

Harald K. schrieb:
> Zeig. Deinen. Quellcode.

Vielleicht sollte man schon mal mit erhobenen Zeigefinger
darauf
1
Wichtige Regeln - erst lesen, dann posten! ....
2
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
hinweisen ......

von Harald K. (kirnbichler)


Lesenswert?

Bevor Diskussionen über "länger" losgetreten werden:

Zeig. Deinen. Code. Als. Dateianhang.

Danke.

von Wastl (hartundweichware)


Lesenswert?

Harald K. schrieb:
> Zeig. Deinen. Code. Als. Dateianhang.

Danke. Sehr.

von Marcus K. (marcus_k913)


Lesenswert?

Karl B. schrieb:
> Wastl schrieb:
>> Marcus K. schrieb:
>>> ich schreibe in Luna
>
> ganz oben schon erwähnt.
> Aber Luna wird mit demselben Problem zu kämpfen haben, das sich aus der
> Vorgabe des HD44780 ergibt. Das ST7066 ist quasi dasselbe.
>
> Um fortzufahren: Man gibt Steuerzeichen ein und für die folgenden immer
> 8 Bit noch drauf.
> Für Ascii 00 also hex 40
> für 01 hex 48
> für 02 hex 50 etc...
>
> ciao
> gustav

Danke da war mein Denkfehler ich hab immer stumpf 8 auf die Hex40 
addiert
Aber es ergibt sich so ja
Zeichen 1 = 0x40 + 1*8
Zeichen 2 = 0x40 + 2*8
Zeichen 3 = 0x40 + 3*8

Usw.

Das war das was ich brauchte.
Vielleicht habe ich mich Eingangs doch etwas sehr unsauber ausgedrückt.
Entschuldigung dafür.

Und auch Entschuldigung das ich eure Zeit verschwendet habe.
Aber ich habe so eine Diskussion hier schon erwartet,denn ich lese hier 
schon eine Weile quer und habe auch schon den einen oder anderen heißen 
Tip mitgenommen.

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
Noch kein Account? Hier anmelden.