4x20 LCD

Gast #228594
Lesenswert?

Hallo

Ich will ein 4x20 LCD ansteuern (KS0073). Im großen und ganzen klappt
es auch. Nur eine Merkwürdigkeit bleibt. Wenn ich nach einem CLS
Zeichen schreibe, werden einige davon in der 2. Zeile wiederholt und
der Cursor (blinken und sichtbar aktiviert) blinkt dann in beiden
Zeilen synchron. So sieht es aus:

Hello my new world_
 world_

Der Underscore soll der Cursor sein.

Da mache ich doch bestimmt was bei der Initialisierung falsch (2
Zeilen-Modus ist an) Nur was fehlt?

Außerdem scheint die Speicheradressierung nicht mit dem Datenblatt (und
anderen Angaben bei anderen LCDs) übereinzustimmen. Aber das schiebe ich
vorerst noch auf das obige Phänomen.
Gast #228596
Lesenswert?

Der lcd-controller ist bei mir etwas langsammer als der controller den
ihn steuert.
D.h. ich mache par usleep.


void lcdWrite(short dat)
{
  while((lcdRead(0)>>7)&1){} // wait until LCD is ready

  RS=(dat>>9)&1; // get RS bit
  RW=OFF;        // set RW bit


  if(WdtLcdIAP) feedWatchDog();
  usleep(WAITTIME_WRITE);
  if(WdtLcdIAP) feedWatchDog();

  if (ENABLE_NR==1) E=ON;
  else  E2=ON;
  DATA=(char)dat;

  E=OFF;  E2=OFF;
  RS=OFF;
  RW=OFF;
  return;
}
Gast #228605
Lesenswert?

@Klaus:
was heißt trial and error?

Soll das heißen, das das LCD kaputt ist oder nichts taugt? Kann ja
nicht sein, daß ich jetzt ein anderes nehmen soll. Hat ja nebenbei auch
Geld gekostet.

Wenn nur die Adresse falsch wäre, könnte ich damit leben. Aber wieso
dieses doppelte schreiben?
Gast #228607
Lesenswert?

Hallo,

tut mir leid ich habe erst jetzt reingeschaut. Ich hatte letzten Monat
das gleiche Problem. Da stimmt was mit der Initialisierung nicht. Hier
im Forum gibt es schon einen Beitrag dazu. Such mal nach 4x20 glaube
ich. Dort findest Du dann auch die neuen.lib dateien für C.

Ich hoffe ich hab Dir helfen können.

Grüsse Markus

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