Forum: Mikrocontroller und Digitale Elektronik LCD EA DIP204-4 macht murks


von Sebastian (Gast)


Lesenswert?

Ich versuche zur Zeit das vierzeilige EA DIP204-4 von
electronic-assembly zum richtigen Funktioniern zu überreden.
Ich verwende die Standart-Routinen vom Compiler Codevision. In der
ersten Zeile des LCDs klappt noch alles prima, ab der zweiten
verschiebt er mir die Zeichen wild durcheinander. Es tauchen z.B. auch
Zeichen der ersten Zeile in der zweiten wieder auf.

Vielleicht hat jemand ein paar Zeilen C-Code geschrieben, die mir bei
meinem kleinen Problem hilfreich wären.


Sebastian

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

jojo...

Dateien ins lib bzw inc-Verzeichnis, mit
#include <lcd_dip.h> statt <lcd.h> einbinden, dann sollte es klappen

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

und die noch

von Sebastian (Gast)


Lesenswert?

Millardensten Dank,

es murkst nicht mehr, es funkelt schön in balu-weiß.

von Markus Haas (Gast)


Lesenswert?

Hallo,


ich habe ebenfalls das DIP204B-6NLW Display vor mir, einen ATMEGA128
und CodeVision. Sowohl beim Einbinden von "lcd.h" als auch beim
Einbinden von "lcd_dip.h" bekomme ich das exakt selbe Fehlerbild,
nämlich dass (wie bereits im ersten Beitrag beschrieben) die erste
Zeile des Displays funktioniert, die anderen aber nicht. Ich möchte
z.B. den folgenden Text ausgeben:

Zeile 1: "01234567890123456789"
Zeile 2: "98765432109876543210"
Zeile 3: ""
Zeile 4: ""

Ich erhalte jedoch:

Zeile 1: "01234567890123456789"
Zeile 2: "2345679"
Zeile 3: "109876543210"
Zeile 4: ""

Der dafür verwendete Code sieht im Wesentlichen so aus:

char sz1[21] = "01234567890123456789";
char sz2[21] = "98765432109876543210";

lcd_init( 20 );
lcd_puts( sz1 );
lcd_puts( sz2 );


Wie kann das sein, bzw. was könnte ich noch ausprobieren?

Danke im Voraus,
    Markus

von Manfred (Gast)


Lesenswert?

ich weiss jetzt nicht wie diese libraries aussehen, aber das
DIP204B-6NLW hat glaub ich eine etwas andere Adressenverteilung bzgl.
der Zeilen...muss ich mal im Datenblatt schauen...

---schnipp---
Adressierung:
1. Zeile $00..$13
2. Zeile $20..$33
3. Zeile $40..$53
4. Zeile $60..$73
---schnipp---

also fast linear im Gegensatz zu anderen Displays, die gerne mal Zeile
1-3-2-4 durchaddressieren...
mal die library anschauen ob die 'aufpasst' wenn man aus dem
RAM-Bereich einer Zeile rausschreibt (Word-Wrap?)

Grüße

von Markus Haas (Gast)


Lesenswert?

Die Library ist oben vorhanden, aber ich werde nicht recht schlau
daraus, vor allem kann ich den anscheinend vorhandenen Fehler nicht
finden!

von crazy horse (Gast)


Lesenswert?

char sz1[21] = "01234567890123456789";
char sz2[21] = "98765432109876543210";

lcd_init( 20 );
lcd_puts( sz1 );
lcd_gotoxy (0,1);  //Zeile 2
lcd_puts( sz2 );

von Markus Haas (Gast)


Lesenswert?

Das funktioniert auch nicht viel besser:

Der Text, welcher in Zeile 2 stehen sollte, steht in Zeile 3. Und Zeile
2 und 4 enthalten jeweils Fragmente (die letzten 8 Zeichen) von Zeile 1
und 3.

Wenn ich diesen Code verwende:

lcd_init( 20 );
lcd_puts( sz1 );
lcd_gotoxy( 0, 2 );
lcd_puts( sz2 );

kommt folgendes raus:

Zeile 1: "01234567890123456789"
Zeile 2: "23456789987654321098"
Zeile 3: ""
Zeile 4: ""

von TravelRec. (Gast)


Lesenswert?

Timing zu schnell für´s Display?!

von Markus Haas (Gast)


Lesenswert?

Ich hab's gefunden:

Die Initialisierung, welche in den standardmäßigen LDC.h/.lib Dateien
(auch in der oben eingefügten) verwendet wird, passt einfach nicht zu
meiner Hardware.

Danke an alle für die rasche Hilfestellung!

von Marco Geisler (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
ich habe auch ein EA-DIP204-4 an einem ATmega8 mit 4MHz.
Leider zeigt es weder mit den Assembler-Routinen aus dem AVR-Tutorial,
noch mit C-Routinen von P. Fleury was an, ein anderes HD44780 schon.

Jetzt habe ich CodeVision probiert, auch mit oben genannten libs, aber
es bleiben nur weiße Kästchen :(
Was muss ich mit dem Reset des LCD machen? frei hängen?

Ich habe
RS an PD0
RW an PD1
E  an PD2
D4 an PD4
D5 an PD5
D6 an PD6
D7 an PD7

Was mache ich falsch?

Vielen Dank schon mal, Marco

von Marco Geisler (Gast)


Lesenswert?

Also ich hab nochmal alle Leitungen durchgemessen, und auch mit dem Oszi
überprüft, scheint alles soweit iO zu sein.
Leider krieg ich trotzdem nur weiße Kästchen :(

Hat keiner nen Tipp für mich?

von avoid (Gast)


Lesenswert?

Markus Haas noch da?

wie hast du das problem in den griff bekommen?
ich habe das selbe phenomehn das die letzten 8 zeichen von
zeile 1 auch am anfang von zeile 2 zu sehen sind.

welche änderungen muß man dafür vornehmen?
was wird mit dem KS0073 anders als normal initialisiert?

ich kann mit den lib dateihen leider nichts anfangen,
weil ich meinen mc in basic programmiere.
und ich nutze keine 8bit sondern nur 4bit.

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.