LCD + ATMEGA32

Gast #481761
Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem mit einem 4-Zeilen Display (bestell bei 
Reichelt HD44780-kompatibel). Ich verwende wie so viele auch die 
Fleury-Datei um einfach mal einen kleinen Text "Hallo" auszugeben. In 
der Headerdatei hab ich die Einstellungen soweit alle gemacht.
Das Ergebnis ist leider weniger befriedigend, denn ausser zwei schwarzen 
n der ersten und er dritten Zeile Balken sehe ich garnichts. Sobald ich 
den Kontrast etwas schwächer einstelle werden aus den schwarzen Balken 
Pfeil die von links nach rechts durchlaufen.

Da ich noch in den allerersten Startlöchern der Programmierung stehe 
hoffe ich, dass ihr mir etwas weiterhelfen könnt.

Vorab schon mal Dankeschön


Gast #481769
Lesenswert?

der genaue Typ des Displays bzw des Controllers wäre auch nicht 
verkehrt. Manchmal wird behauptet das Display wäre HD-kompatibel obwohl 
die Kompatibilität schon bei der Initialisierung scheitert (EA DIP204 
z.B)

bye

Frank
Gast #481792
Lesenswert?

Im LCD-Code von Peter Fleury ist eine ganz gute Initialisierungsroutine, 
die nicht "nur" HD44780 berücksichtigt. Hatte mit einem 16*4 "grün" von 
Reichelt keine Probleme mit diesem Code (mag sein, dass Reichelt 
inzwischen andere Modelle liefert). Bevor ein Fehler im Code gesucht 
wird, nochmal die Hardware genau prüfen und schauen, ob die Pins 
wirklich richtig eingestellt sind. Fürs erste den Port C bei Tests 
meiden. Damit kann man zumindest ausschließen, dass ein aktiviertes 
JTAG-Interface "querschießt". Ansonsten genaue Bestellnummer angeben, 
dann kann man das Datenblatt einsehen und schauen, ob wirklich etwas im 
Initialisierungscode zu ändern ist.
Gast #482450
Lesenswert?

also die genaue Bezeichnung des Display lautet "LCD 204B LED"
Es beinhaltet den Controller LSI KS0076B; Segmenttreiber KS0063

Das Display ist wie folgt beschaltet:

               Controller-  LCD-
               Port        Anschluss
             ---------------------------
            PA7  =   nc
      PA6  =   E
      PA5  =   RW
      PA4  =   RS
      PA3  =   DB7
      PA2  =   DB6
      PA1  =   DB5
      PA0  =   DB4
            ---------------------------

Die eingestellte Taktfrequenz liegt bei 1 MHz.

Mein Programm schaut so aus:

#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "lcd.h"


int main(void)
{
  lcd_init(LCD_DISP_ON_CURSOR);    /*Displ on, Cursor on*/
  lcd_clrscr();                           /*lösche Display*/
  while(1)
  {
  lcd_puts("Hallo");                  /*Ausgabe*/
  }//end while
}

Ich hoffe dass das mit dem Anhang der lcd.h funktioniert...

Thorsten

Angehängte Dateien:
Gast #482468
Lesenswert?

Guck dir das Datenblatt zum Chip an und vergleich es mit deiner 
Init-Routine. Wenns so ein EA-Display ist, dann muss es geringfügig 
anders initialisiert werden als ein Display mit HD Chipsatz. Ich hab 
mein EA204 auch erst mit ner geänderten Routine ans rennen gebracht.

bye

Frank
Gast #482499
Lesenswert?

@ Frank,
würde das auch erklären warum sich an meinem Display, egal was ich in 
der lcd.h verändere, garnichts tut?
Ich habe als Datenblatt leider nur das von Reichelt und da steht 
niergends ein Hinweis dass es ein EA-Display sein soll...

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