Forum: Compiler & IDEs LCD Displaytech 204B & ATmega32


von Pascal (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe das Display 204B der Firma Displaytech Ltd. von Reichelt (4x20) 
mit Chip lt. Datenblatt Typ KS0066U und Treiber x2 KS0063.
Der uC ist ein ATmega32.
Das Display ist derzeit an Port B angeschlossen (auch schon mit Port D 
getestet).
Angeschlossen ist so:

Display        uC
--------------------
DB4            PB0
DB5            PB1
DB6            PB2
DB7            PB3
RS             PB4
RW             PB5
E              PB6

& Vcc etc. natürlich. Als lcd-lib nehme ich die lcdlibrary von Peter 
Fleury. Der uC läuft derzeit mit 1 Mhz int. Oz.. Mein Programm sieht so 
aus:

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

/*
** constant definitions
*/
/*static const PROGMEM unsigned char copyRightChar[] =
{
  0x07, 0x08, 0x13, 0x14, 0x14, 0x13, 0x08, 0x07,
  0x00, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x00
};
*/

int main(void)
{
    unsigned int i;
  for(i=0; i<=100; i++)
      _delay_ms(10);

    /* initialize display, cursor off */
    lcd_init(LCD_DISP_ON);

    for (;;) {                           /* loop forever */

        lcd_clrscr();

        /* put string to display */
        lcd_puts("Hello");
    }
}

Die lcd.h ist im Anhang, das Datenblatt vom Display findet man hier:
http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=A500%252FLCD204B%2523DIS.pdf;SID=28eZ2g9X8AAAIAAD3FX-05c8c0e81798948f43246762bbc852828

Nicht zu vergessen ist, dass ich den Kontrast vom Display schon 
eingepegelt habe, das funktioniert. An einem anderen uC mit anderem 
Programm geht es auch, daher ist die Hardware ok.
Einen zweiten uC habe ich auch schon genommen.

Mein Problem:

Schalte ich ein, dann erscheinen auf dem Display in Zeile 1 und 3 
schwarze Balken, diese verschwinden nach ca. 1 Sekunde. Sollte laut 
Programm auch so sein. D.h. init sollte funktionieren. Jetzt habe ich 
nur das Problem, dass es mir einfach nichts schreiben will. Was mache 
ich da falsch, was muss ich da einstellen?

Sämtliche alten Posts hier im Forum bringen mich einfach nicht weiter 
und nach nun fast 8 Stunden wollt ich Euch mal um Hilfe bitten.

Danke für irgendwelche Tipps hierzu,
Grüße aus Kassel, Pascal

von Falk B. (falk)


Lesenswert?

For
1
#include <util/delay.h>

muss die Taktfreqeunz definiert werden, sonst kann es sein, dass die 
Delays nicht richtig sind.
1
#define F_CPU 1000000L

MFG
Falk

von Pascal (Gast)


Lesenswert?

Hi,

daran liegt es nicht. Im AVRStudio habe ich das unter Compileroptionen 
mit drin. Habe es sicherheitshalber jetzt nochmal ergänzt, aber es 
bringt keine Änderung.
In dem Zusammenhang habe ich auch mal verschiedene Optimierungsstufen 
probiert, aber alles ohne Erfolg. Langsam verzweifel ich...

Grüße Pascal

von Stefan B. (stefan) Benutzerseite


Lesenswert?

1
    for (;;) {                           /* loop forever */
2
        lcd_clrscr();
3
4
        /* put string to display */
5
        lcd_puts("Hello");
6
    }

Löschen... Schreiben... Löschen... Schreiben...
Ist dein µC vielleicht schneller als du denkst?

von Dennis U. (atmegadennis)


Lesenswert?

Hast du ein anderes Display um die funktionalität zu testen ??

von Pascal (Gast)


Lesenswert?

Also, habe einmal die Schleife weggenommen -> Keine Änderung, also nix 
zu schnell oder wie auch immer.

Anderes Display: Habe ein 2x16 mit KS0070B Chip, geht damit auch nicht. 
Kann ich aber noch nichtmal init machen.

Auf dem 4x20 Display hier: Mit dem AVR-GCC Tutorial-Skripting geht es... 
Wollte eben nur die Fleury-Komforts haben.
Woran kann das noch liegen?

Mfg Pascal

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hast du schon probiert das Display im lcd.h als
1
#define LCD_CONTROLLER_KS0073 1  /**< Use 0 for HD44780 controller, 1 for KS0073 controller */
zu betreiben?

Bzw. hast du mal die Abweichungen/Gemeinsamkeiten des KS0066U zu HD44780 
und/oder KS0073 in den Datenblättern nachgeschlagen?

von Pascal (Gast)


Lesenswert?

Hi Stefan,

ja, klar, habe auch schon mit KS0073 Controller probiert, das war meine 
alle erste Idee. Natürlich nichts...

Wo finde ich denn solche Datenblätter? Das Problem ist (siehe den 
Datenblatt-Link oben in meinem originial-Post) das da auch ein KS 
kompatibler drin sein kann (lt. Datenblatt). Wie finde ich sowas raus?
Hat denn noch niemand mit dem Display von Reichelt was gemacht?

Grüße Pascal

von Stefan B. (stefan) Benutzerseite


Lesenswert?


von Roland (Gast)


Lesenswert?

Hallo Pascal!

Wollte nur fragen, ob Du nun Erfolg hattest mit Deinem LCD?
Habe genau das gleiche Problem...

-  KS0073 Controller
-  ATmega32
-  C Programmiert

Hat Jemand vielleicht schon Erfahrungen mit den Controllern?

Liebe Grüsse
Roland

von Maik B (Gast)


Lesenswert?

Hast du DB0 - DB3 mal auf GND gesetzt?
Das war bei mir mal das Problem.

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.