Forum: Mikrocontroller und Digitale Elektronik Probleme mit Displayansteuerung (4*20)


von Jens M. (jens-m)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Problem mit der Ansteuerung meines neuen Displays
(LCD 204BL-4 DIP / Reichelt). Die Fehlerbeschreibung ist mit auf dem
Bild, welches ich angehängt habe.
Was mich verwundert ist, dass ein anderes 4 Zeilen Display einwandfrei
funktioniert.

Ich würde mich freuen, wenn mir da jemand weiterhelfen kann.

Vielen Dank im voraus.

Jens

von Markus N. (Gast)


Lesenswert?

Das liegt daran das du intern nur 2 Zeilen hast (für den Controler) !

von Jens M. (jens-m)


Lesenswert?

Wie teile ich dem Controller dann mit, dass er das Kopieren sein lässt
und die zweite Zeile am Anfang an beschreibt?
Habe es mit Lower Line und Locate ausprobiert aber Fehler bleibt.

Jens

von Thomas K. (thkais)


Lesenswert?

Hört sich nach einem Initialisierungsfehler an. Mit welchen Parametern
initialisierst Du?

von Jens M. (jens-m)


Lesenswert?

Config Lcd = 20 * 4 , Chipset = KS0073

Config Lcdbus = 4

Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , _
        Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.0 , Rs = Portd.6

Initlcd

Cls

Cursor Off

von Jens M. (jens-m)


Lesenswert?

Liegt es an der Initialisierung meines Bascom-Quellcodes oder sind
irgendwelche Parameter falsch?

Vielen Dank für eure Antworten.

Jens

von Sebastian Heyn (Gast)


Lesenswert?

Wenn du hier nach Bascom fragst wirst du nicht sooo viele Antworten
bekommen. Es gibt hier zu viele C-ist-besser-meinung-leute.
Von der initialisierung her sieht es okay aus. der kontrollertyp ist
wirklich KS0073? mmhh

The 20*4A is also special. It uses the addresses &H00, &H20, &H40 and
&H60 for the 4 lines. It will also set a special function register.
hast du e oder e- angeschlossen?

von thkais (Gast)


Lesenswert?

Das hat nicht mit "besser" oder "schlechter" zu tun. Bascom ist eine
nette Sache, aber in vielen Dingen zu sehr black-box.
Man müßte die geforderte Initialisierungssequenz des 20x4 Displays mal
checken und mit der eines 16x4 vergleichen (Datenblätter vergleichen).
Da müsste ein Unterschied zu sehen sein, wenns an der Initialisierung
liegt (man kann z.B. das Display als 1-zeilig oder 2-zeilig
initialisieren). Wenn es unterschiede gibt, sind die wahrscheinlich bei
Bascom nicht berücksichtigt oder müssen über entsprechende Parameter
aktiviert werden.

von Sebastian Heyn (Gast)


Lesenswert?

schau mal auf www.roboternetz.de da habe ich schon oft gute hilfe mit
bascom bekommen.

oder schreib mark bei mcselec ne mail, der brauch zwar immer ein
bisschen aber ne atwort bekommst du auf jeden fall

von Paul Baumann (Gast)


Lesenswert?

Versuch es mal so.

Gruß Paul





Config Lcd = 40*4                     'Anzeigemodus 40 x 4 Zeichen
Config Lcdpin = Pin , E2 = Portb.1 , Db4 = Portb.4 , Db5 = Portb.5 ,
Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2


___lcdno = 0                                 'auf Chip 1 schalten
Initlcd                                    'die beiden oberen Zeilen
Lcd "by Paul Baumann"
___lcdno = 1                               ' Chip 2

Initlcd
Lcd " so, 3 Zeile"

von Paul Baumann (Gast)


Lesenswert?

...natürlich config Lcd = 20*4. Alter Schussel.

:-)

Paul

von TravelRec. (Gast)


Lesenswert?

Für mich hört sich das ganze nach einer Fehladressierung an. Zum
Beschreiben jeder Zeile muß anfangs eine Adresse mitgeliefert werden.
Für die erste Zeile liegt sie bei 0x00, Zeile 2 hat meistens 0x40,
Zeile 3 0x20 und Zeile 4 0x60. Das kann aber von Display zu Display
unterschiedlich sein. Electronic Assembly liefert eigentlich immer
einen gut strukturierten Beipackzettel mit, einfach mal ´reingucken ;)

von Millenniumpilot (Gast)


Lesenswert?

Hallo,

ich steuere dieses Display mit
Chipset = Ks077 an.

Damit funktioniert es ohne Probleme. Siehe auch  www.roboternetz.de

Gruß Dirk

von Millenniumpilot (Gast)


Lesenswert?

Ach so, hier der Code (welcher ansonsten ja identisch ist):

Config Lcd = 20 * 4a , Chipset = Ks077
   Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7
, Db7 = Portd.6 , E = Portb.3 , Rs = Portc.2
   Config Lcdbus = 4



   Initlcd

   Cls
   Locate 1 , 1                   'Cursor auf 1 Zeile, 1 Spalte
   Lcd "bla bla"
   Locate 2 , 1
   Lcd "bla bla"
   Locate 3 , 1
   Lcd "bla bla"
   Locate 4 , 1
   Lcd "Testprogram blabla"

von Jens M. (jens-m)


Lesenswert?

Vielen vielen Dank für die vielen konstruktiven Antworten.

Der Fehler ist raus. Ich habe lediglich einmal Chipset auf KS077
gesetzt und danach war der Fehler raus.
Nur als ich ihn später wieder "einbauen" wollte um 100%ig sicher zu
sein, konnte ich ihn nicht mehr rekonstruieren.

Wenn der Fehler noch einmal auftritt und ich rausfinde, woran es lag,
werde ich es auf jeden Fall posten.

Es hat auf jeden Fall mit der Lösung von Dirk funktioniert.

Ich bin happy, dass es läuft.

Nochmals vielen Dank

Jens

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.