Lcd die 1000ste

OP #7635558
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?

#7635652
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

Angehängte Dateien:
#7635668
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

#7635694
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.

OP #7635796
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 + 18 Zeichen 2 = 0x40 + 28 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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren