Forum: Mikrocontroller und Digitale Elektronik Der Basic Tiger und ein KS 0073 controller


von Tobias Schlegel (Gast)


Lesenswert?

Hallo.

Ich habe ein Problem mit einem KS0073 Displaycontroller.
Ich habe mir mit dem Basic Tiger ein kleines Terminal
gebaut und auch ein Display mit eingebaut.

Das Problem:

Immer, wenn ich mit dem Tiger eine zeilenfüllende
Ausgabe mache, wird die zwar angezeigt,
aber die letzten 3-5 Zeichen in der nächsten Zeile
nochmals angezeigt. Diverse Hotlines
(darunter auch die von Wilke) behaupten, das
liege an der Initialisierung.

An was liegt das und wie kann man es beheben?
Ich bin erst 14 und mir geht langsam die Geduld aus.

Danke schon mal im Voraus,

Tobi

von Rockhound (Gast)


Lesenswert?

Hallo Tobi,

habe auch ein LCD mit KS0073 und kenne diesen Fehler. Die Ursache
ist tatsächlich die Initialisierungssequenz, die du an den
Controller sendest. Je nach LCD-Typ, 2x16 bzw.2x20 Zeichen oder
4x20 Zeichen mußt du andere Kommandos benutzen und ganz wichtig die
Wartezeiten einhalten. Das Abfragen des Buzy-Flags funktioniert nämlich
erst, wenn das LCD initialisiert ist.
Schau am besten mal im Datenblatt nach. Das findest du bei
'www.lcd-module.de'.

Hier der Kernabschnitt meiner LCD-Initialisierung in C:

//-------------------------------------------------------------------
// Initialize Display at Startup
//-------------------------------------------------------------------
void DSP_Init(void)
{
   // All port bits as output
   DDR(LCD_DATA_PORT) = 0xFF;
   // Wait 25ms or more after power-on
   Wait_us(25000);
   // Set 4-Bit I/O Mode and Extented Function Set
   LCD_Write(CMD_FUNCTION_SET | FS_SET_EXT_FCT, 0);
   Wait_us(43);
   // Set 4 Lines Mode
   LCD_Write(CMD_DISPLAY_CONTROL | DCE_4LINEMODE, 0);
   Wait_us(43);
   // Clear Extented Function Set
   LCD_Write(CMD_FUNCTION_SET | FS_CLR_EXT_FCT, 0);
   Wait_us(43);
   // Set Display ON and Cursor ON and Blink ON
   LCD_Write(CMD_DISPLAY_CONTROL | DC_DISPLAY_ON /*| DC_CURSOR_ON
             | DC_BLINK_ON*/, 0);
}

von Tobias Schlegel (Gast)


Lesenswert?

Hallo.

Danke für das Posting.
Im allgemeinen verstehe ich das C Programm schon.
Ich verstehe nur die hexadezimalen Portausgaben nicht.
Frage: mit einem 4x20 Zeilen Display, wie müssen da
die Initialisierungen aussehen? (muss es in Tiger-Basic umsetzen...)
Habe im Sheet nachgeschaut,
da bringen die aber nichts über Initialisierungen.
Ich bin totaler Display noob... .
Der Device Treiber vom Tiger ist irgendwie [(...zu blöd für den
KS0073...)] nur auf den HD447800 aus, funktioniert auch mit keinem
anderen. Deshalb dachte ich mir ich könnte die Displaysteuerung
einfach selber schreiben.

Vielen Dank schon mal,

Tobi

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.