• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Probleme LDC Anzeige mit eigenen Zeichen

peter51d

Geocacher
Ich bräuchte da noch mal Hilfe von den Experten:

Ich habe da ein Problem mit einem bzw mit zwei 16x4 LC Text Displays.
Das Display soll von einem Mega8 über 8Bit angesteuert werden. 4Bit hat erst mal nicht geklappt, kann aber auch ein Verdrahtungsfehler gewesen sein. Ist erst mal zweitrangig.

Die Standartzeichen (Alphabet und Zahlen usw.) werden richtig angezeigt.

Nun möchte ich mir aber eine "Grafik", die über alle vier Zeilen geht zusammen basteln.
Als eine Skizze gemacht und die Zeichen mit dem Bascom LCD Designer erstellt.
Das ganze in das Programm gepackt und auf den Mega geschoben.

Es wird auch was gangezeit, nur nicht das was ich mir gedacht habe.

Zum Testen habe ich dann mal nur acht einfache Zeichen erstellt.
Je Zeichen ein horizontaler Strich in unterschiedlichen Zeilen.

Wenn ich diese dann auf dem Display anzeigen lassen möchte bekomme ich acht komplett ausgefülte Blöcke.

Bei einem zweiten Display bekomme ich acht Blöcke, mit je drei senkrechten Streifen.

Ich habe dann mal etwas im Netz gesucht und heraus gefunden das in beiden Displays kein HD44780 sondern ein ST7066U als Controler verbaut ist.
Jetzt habe ich den Verdacht, dass das der Grund für mein Problem ist.

Hat jemand schon mal Erfahrungen mit diesem Controler gemacht oder eine Idee, wie ich das Display dazu bekomme, denn noch die gewünschten "Sonderzeichen" an zu zeigen?

Anbei noch der Code, der eigendlich acht horizontale Streifen in unterschiedlicher Höhe zeigen sollte.
Code:
' mega8 lcd test

$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 32
$framesize = 60


'Config Port Pin
 Config Lcdpin = Pin , Port = Portd , E = Portb.1 , Rs = Portb.2
 Config Lcd = 16 * 4


 Cls
 Cursor Off

 'sonderzeichen test



Deflcdchar [0] , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 32      ' replace [x] with number (0-7)
Deflcdchar [1] , 32 , 31 , 32 , 32 , 32 , 32 , 32 , 32      ' replace [x] with number (0-7)
Deflcdchar [2] , 32 , 32 , 31 , 32 , 32 , 32 , 32 , 32      ' replace [x] with number (0-7)
Deflcdchar [3] , 32 , 32 , 32 , 31 , 32 , 32 , 32 , 32      ' replace [x] with number (0-7)
Deflcdchar [4] , 32 , 32 , 32 , 32 , 31 , 32 , 32 , 32      ' replace [x] with number (0-7)
Deflcdchar [5] , 32 , 32 , 32 , 32 , 32 , 31 , 32 , 32      ' replace [x] with number (0-7)
Deflcdchar [6] , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 32      ' replace [x] with number (0-7)
Deflcdchar [7] , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 31      ' replace [x] with number (0-7)



 Locate 1 , 1
 Lcd Chr(0) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(4) ; Chr(5) ; Chr(6) ; Chr(7)       'selbst devinierte Zeichen an LCD senden
End                                                         'end program
 

Bussard

Geocacher
Hallo Peter51d,

Der Controller kann 5x8 oder 5x11 Punkt-Displays ansteuern. Welches hast du?
Entsprechend kannst du 8 bzw. 4 eigene Zeichen definieren (leider nicht mehr).

Nach der Definition der Zeichen muß der Controller in den Anzeigemodus zurückgeschaltet werden "Cls 'select data RAM
Rem it is important that a CLS is following the deflcdchar statements because it will set the controller back in datamode
" (aus BASCOM Tutorial)

Bei meiner Bascom-Version werden keine eckigen Klammern in der "Deflcdchar [0] ... " Anweisung benötigt.

Gruß Bussard
 
OP
peter51d

peter51d

Geocacher
:kopfwand: :kopfwand: :kopfwand: :kopfwand: :kopfwand: :kopfwand: :kopfwand: :kopfwand: :kopfwand:

Die Klammern waren das Problem.
Habe natürlich in der Hilfe nicht auf das Beispielprogramm geschaut, und den Hilfskommentar im Code nach dem erstellen des Sonderzeichens falsch interpretiert un nur das "X" gegen die Zeichennummer getauscht.

Das "cls" hat ihm noch nicht mal weh getan, wir aber trotz dem beim nächsten mal eingefügt.

Danke :gott: für das öffnen der Augen :shocked:

Jetzt gibt es vielleicht doch bald wieder eine Tankanzeige in unserer Familienkutsche
 
Oben