Forum: Mikrocontroller und Digitale Elektronik LCD DIP204 Problem


von Michael Ungehauser (Gast)


Lesenswert?

Hallo,

wir verwenden das LCD Modul EA DIP204-4 (Kontroller KS0073) von
Electronic Assembly mit 4 zeilen und 20 Zeichen pro Zeile und einen
ATMega128.

Folgender Code ist dazu wichtig:


...



// Port für das LCD festlegen
#asm
   .equ __lcd_port=0x15
#endasm

// Includes
#include <lcd.h>
#include <delay.h>

// LCD modul initialisieren mit 20 Zeichen pro Zeile
lcd_init(20);

// Text auf LCD ausgeben
unsigned char counter = 0;

// 80 mal ein a auf das LCD einfügen
for(counter = 0; counter < 80) {
     lcd_putsf("a"); // gib a aus auf LCD
     delay_ms(300); // warte
}


...


Eigentlich sollte das Display laut Hersteller (und man kann die Stellen
auch zählen) 20 Zeichen pro Zeile enthalten und 4 Zeilen hoch sein ->
also 80 Zeichen fassen können. Das obere Programm-Snippet füllt nach
und nach das Display mit 'a', DOCH ab Stelle 13 in Zeile 1 schreibt
das LCD das 'a' auf einmal in Zeile 1 UND in Zeile 2 weiter!!! Ab da
gibt es dann ein wildes Durcheinander! Was ist da falsch? Kennt jemand
zufällig dieses Problem? Muss man vor dem 1. Schreiben auf das LCD noch
etwas anderes inizialisieren am LCD? Nromalerweise sollte es genügen,
"lcd_init(20);" aufzurufen...

Ich bin für jede Hilfe dankbar, denn es handelt sich hierbei um eine
Studienarbeit...

Gruß.

von Benedikt (Gast)


Lesenswert?

Das Display wird anscheinend nur für 1 Zeile initialisiert, und nicht
für 2 (oder mehr).
Dann bekommt man solche Erscheinungen...

von Dirk (Gast)


Lesenswert?

Hi,

das Problem liegt darin das das IC (Ks0073) nicht 100% kompatibel zum
HD44780 ist.

In der Codesammlung findest du fertige Routinen von mir zur Ansteuerung
des Display's per SPI.

Ansonsten muesstest du mal in der Headerdatei bei dir nach den
Zeilenadressen suchen und diese richtig abaendern.


Mfg

Dirk

von Michael Ungehauser (Gast)


Lesenswert?

Vielen Dank erstmal für Eure schnelle Antworten! Ich werde das mrogen
gleich mal in Angriff nehmen und dann wieder berichten.

Gruß

von Michael Ungehauser (Gast)


Lesenswert?

@DIRK:

Ich habe mir deine "lcd_spi2.zip" runtergeladen. Jetzt habe ich
folgendes Problem: Woher bekomme ich die "avr/io.h"? ich habe nur die
"stdio.h". Mit der funktioniert es nicht.
Wäre super wenn du mir helfen könntest!

Gruß

von Dirk (Gast)


Lesenswert?

Hi,

befindet sich in der akttuellen WIN AVR Version (GCC). Anscheinend
benutzt du einen anderen C Compiler...


Mfg

Dirk

von Michael Ungehauser (Gast)


Lesenswert?

Ich benutze den CodeVisionAVR. Wäre es sinnvoll die io.h und io.c(?) vom
WIN AVR zu importieren? Würde das überhaupt funktionieren? Oder kannst
du mir einen anderen Weg empfehlen?

Danke

von Dirk (Gast)


Lesenswert?

Hi,


das kann ich dir leider nicht beantworten.... da ich noch C Anfaenger
bin und dieses mein erstes C Projekt war. Ansonsten den Code von mir
anschaun und auf CodeVision portieren oder wie gesagt in deiner
Headerdatei die Zeilenadressen suchen und abaendern.

Mfg

Dirk

von Michael Ungehauser (Gast)


Lesenswert?

Alles klar. Ich werd mein Bestes versuchen und berichten.

Danke Dirk!!!

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.