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?
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?
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.
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
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
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
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
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.
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.
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 😊
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.
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 ......
Bevor Diskussionen über "länger" losgetreten werden: Zeig. Deinen. Code. Als. Dateianhang. Danke.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.