Initialisierung KS0073 / HD44780

OP #1465611
Lesenswert?

Hallo, ich betreibe an einem Atmega16 ein DIP204-4 (4x20 von Reichelt) 
Display mit mit dieser lcd_init. Das DIP204-4 funktioniert auch hiermit. 
Nun will ich aber das EA T204B-BNLW (4x20 von reichelt) beide sind 
HD44780 kompatibel. Aber das EA T204B-BNLW bekomme ich nicht zum laufen. 
Was ist hier an der Initialisierung falsch?

void lcd_init(void)
{
   LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN);   // Port auf 
Ausgang schalten

   // muss 3mal hintereinander gesendet werden zur Initialisierung

   _delay_ms(15);
   LCD_PORT &= 0xF0;
   LCD_PORT |= 0x03;
   LCD_PORT &= ~(1<<LCD_RS);      // RS auf 0
   lcd_enable();

   _delay_ms(5);
   lcd_enable();

   _delay_ms(1);
   lcd_enable();
   _delay_ms(1);

   // 4 Bit Modus aktivieren
   LCD_PORT &= 0xF0;
   LCD_PORT |= 0x02;
   lcd_enable();
   _delay_ms(1);

   lcd_command(0x24);
   lcd_command(0x09);
   lcd_command(0x20);
   lcd_command(0x0C);
   lcd_command(0x01);
   lcd_command(0x06);

   lcd_clear();
}
OP #1465696
Lesenswert?

Hier der Quelltext. Den teil habe ich schon für das andere LCD 
angepasst.

// setzt den Cursor in Zeile y (1..4) Spalte x (0..15)

void set_cursor(uint8_t x, uint8_t y)
{
  uint8_t tmp;

  switch (y) {
    case 1: tmp=0x80+0x00+x; break;    // 1. Zeile
    case 2: tmp=0x80+0x40+x; break;    // 2. Zeile
    case 3: tmp=0x80+0x14+x; break;    // 3. Zeile
    case 4: tmp=0x80+0x54+x; break;    // 4. Zeile
    default: return;                   // für den Fall einer falschen 
Zeile
  }
  lcd_command(tmp);
}
Angehängte Dateien:
Gast #1465709
Lesenswert?

>Hier der Quelltext. Den teil habe ich schon für das andere LCD
>angepasst.

Wen interessiert das? Bekommst du irgendwo auf dem
Display irgendwie zusammenhängende Texte oder nur Schrott?

Komm endlich mal zur Sache.
Gast #1465721
Lesenswert?

>Habe ich doch schon oben geschrieben!

>"Also im Moment sehe ich nur die Zeile 2 und 4.
>Ich sende einen Text an das LCD. Es erscheinen aber nur wahrlos zeichen
>und der couser blinkt."

Und warum denkst du das das an der Routine
zur Positionierung des Cursors liegt?
DA liegt das Problem mit Sicherheit nicht.

Gute Nacht.
Gast #1465756
Lesenswert?

>Ich mache nichts anderes und ich sehe nur schrott!!!!!

Tja, und wir alle hier sehen nicht was du siehst.
Könntest du vieleicht die Güte haben zu erzählen
was du siehst? Ist es dir irgendwie möglich
eine Beschreibung des Inhaltes des Displays zu
liefern? Falls nicht, frage doch mal dir bekannte
Personen ob sie für dich vieleicht mal eine
Beschreibung der Dinge die sich da auf dem
Display tun machen könnten.


1,2,3,4 ich dreh gleich durch!
#1465783
Lesenswert?

Du sagtest Du siehst nur was auf Zeile 2 und 4.
Das sieht irgendwie nach Initialisierung aus. Als 2 zeilges 
inititalisieren.
Ist das Diplay als 2 zeiliges initialisiert ?
Schau ins Datenblatt wo die Adressen der Zeilen sind.
Die unterscheiden sich !!
Kann auch ein Problem mit der Zeilenumschaltung sein !!
Wenn das alles stimmt kommt nur noch eine Datenleitung in Frage.

www.sprut.de hilft ungemein beim Verständnis von LCD Displays.
Gast #1465792
Lesenswert?

>wenn es denn hilfreich ist.....

>Zeile 1: steht nix
>Zeile 2: L=Ö?/%§///)))===%TGB
>Zeile 3: steht nix
>Zeile 4: '*_:;;)YSEV?`*===R_-

Das siehst du wenn du nur ABC ausgiebst?
Ich denke wir reden hier nicht von derselben Sache.
Mach was du willst und nerv hier nicht weiter rum.
OP #1466167
Lesenswert?

holger schrieb:
>>wenn es denn hilfreich ist.....
>
>>Zeile 1: steht nix
>>Zeile 2: L=Ö?/%§///)))===%TGB
>>Zeile 3: steht nix
>>Zeile 4: '*_:;;)YSEV?`*===R_-
>
> Das siehst du wenn du nur ABC ausgiebst?
> Ich denke wir reden hier nicht von derselben Sache.
> Mach was du willst und nerv hier nicht weiter rum.

@holger
wenn es dich nervt, dann antworte hier doch nicht. Bei deinen Antworten 
kommt eh nix bei rum. Falls du es nicht wissen solltes, dies hier ist 
ein Forum, wo Meinungen untereinander ausgetauscht werden können, Fragen 
gestellt und beantwortet werden können. Deine schon fast beleidigenden 
Antworten sind hier wohl nicht angebracht.
Gast #1466174
Lesenswert?

Pascal, die Idee ist du gibst ABC aus und es steht z.B. %&$ dort, daraus 
läßt sich unter Umständen etwas ableiten.

Hier will man dir helfen, wo ist das Problem mal ABC auszugeben und zu 
posten was du siehst ?
OP #1466200
Lesenswert?

Wenn du den gesamten Beitrag gelesen hättes, wäre es die bestimmt 
aufgefallen, das es dem LCD egal ist was ich schicke. ABC habe ich auch 
gemacht. Es sieht immer so aus, oder ähnlich. Selbst wenn ich die 
Spannung wegnehme, wieder einschalte und auch erneut ABC sende steht 
wieder was anderes im LCD. Das Durcheinader aus Zeichen und Buchstaben 
ist also eher zufällig.


>>Zeile 1: steht nix
>>Zeile 2: L=Ö?/%§///)))===%TGB
>>Zeile 3: steht nix
>>Zeile 4: '*_:;;)YSEV?`*===R_-
Gast #1466211
Lesenswert?

>Wenn du den gesamten Beitrag gelesen hättes, wäre es die bestimmt
>aufgefallen, das es dem LCD egal ist was ich schicke. ABC habe ich auch
>gemacht. Es sieht immer so aus, oder ähnlich. Selbst wenn ich die
>Spannung wegnehme, wieder einschalte und auch erneut ABC sende steht
>wieder was anderes im LCD. Das Durcheinader aus Zeichen und Buchstaben
>ist also eher zufällig.

Das wäre doch z.B. mal eine wichtige Information gewesen.
Warum hast du das nicht gleich gesagt?
Irgendwas stimmt da doch mit deinem Anschluss nicht.
Floatet der Enable Pin vieleicht?

Oder das Teil ist bereits defekt.
Gast #1466218
Lesenswert?

Möglicherweise habe ich noch mehr überlesen, ich habe den Beispielcode 
gesehen und ein wenig von dir aber nicht das Ganze originale Program. 
Wenn du nur ABC ausgibst dann kann nicht mehr erscheinen... nicht mehr 
als 3 Zeichen.

Was kommt nach deiner Ausgabe ? ich hoffe nen endless loop, poste mal 
was du hast.
OP #1466266
Lesenswert?

#include <avr/io.h>
#include "lcd-routines.h"

int main(void)
{
    lcd_init();

    set_cursor(0,2);

    lcd_string("Test");

    while(1)
    {
    }

    return 0;
}

Mehr mache ich nicht. Ob das LCD defekt ist, schließe ich mal aus, da es 
neu ist. Hat ja auch alles mit dem DIP204-4 (KS0073) funktioniert. Habe 
ja nur das LCD getauscht (KS0076 laut Reichelt Katalog). Im Datenblatt 
steht was von HD44780. Und beide LCDs sind ja HD44780 kompatibel.

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