www.mikrocontroller.net

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


Autor: Tobias Schlegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rockhound (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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);
}

Autor: Tobias Schlegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.