Forum: Mikrocontroller und Digitale Elektronik Atmega16 EA DIP204-6 4-line


von Thorsten B. (thober)


Angehängte Dateien:

Lesenswert?

Guten Tag,
nach ersten schweren Versuchen das Display am laufen zu bekommen hat es 
endlich mit der Initialisierung geklappt.

Nur mein Problem ist, ich kann das Display nur in 2-Zeilen Modus 
betreiben nicht in 4 kann mir da jemand einen denk anstoss geben??

von Klaus W. (mfgkw)


Lesenswert?

Probiere mal in lcd-rotines.h diesen Teil:
1
#define LCD_DDADR_LINE1         0x00
2
#define LCD_DDADR_LINE2         0x20
3
#define LCD_DDADR_LINE3         0x40
4
#define LCD_DDADR_LINE4         0x60
zu ändern in:
1
#define LCD_DDADR_LINE1         0x00
2
#define LCD_DDADR_LINE2         0x40
3
#define LCD_DDADR_LINE3         0x14
4
#define LCD_DDADR_LINE4         0x54

Ansonsten: definiere, was
"ich kann das Display nur in 2-Zeilen Modus betreiben nicht in 4"
für mich bedeuten mag.

von spess53 (Gast)


Lesenswert?

Hi

>Probiere mal in lcd-rotines.h diesen Teil:

Die Adressen sind schon richtig.

MfG Spess

von Klaus W. (mfgkw)


Angehängte Dateien:

Lesenswert?

spess53 schrieb:
> Die Adressen sind schon richtig.

welche? die originalen in der .h?

Aus dem Beipackzettel von EA lese ich andere heraus; siehe Anhang Seite 
5.

von spess53 (Gast)


Lesenswert?

Hi

Das ist ein EA-Dip:

http://www.lcd-module.de/pdf/doma/dip204-6.pdf

MfG Spess

von Klaus W. (mfgkw)


Lesenswert?

ok, dann doch die originalen.
Gut, daß wir darüber gesprochen haben :-)

von Klaus W. (mfgkw)


Lesenswert?

Dann bleibt aber die Frage: was geht nicht? Wie sieht es aus?

von Thorsten B. (thober)


Angehängte Dateien:

Lesenswert?

Mein Problem ist das alles was in Zeile 1 ab Spalte 13 steht auch in 
Zeile 2 ab Spalte 1 angezeigt wird.

Das gleiche bei Zeile 3 alles ab Spalte 13 auch in Zeile 4

Wie auf dem Bild zu sehen!

Sry binnoch blutiger Anfänger!

von Klaus W. (mfgkw)


Lesenswert?

Das ist jetzt aber nicht dein ursprüngliches Programm?

von Thorsten B. (thober)


Angehängte Dateien:

Lesenswert?

Klaus Wachtler schrieb:
> Das ist jetzt aber nicht dein ursprüngliches Programm?

Das war nur zum testen da habe ich nur noch ein screenshot von.

von spess53 (Gast)


Lesenswert?

Hi

>#define LCD_FUNCTION_1LINE      0b00000000
>#define LCD_FUNCTION_2LINE      0b00001000

Lt. Datenblatt wird mit Bit0 von 'Extended Function Set' zwischen 1- 
oder 2-Zeilig umgeschaltet.

Überprüfe mal deine Konstanten. Da scheint einiges nicht zu stimmen.

MfG Spess

von Klaus W. (mfgkw)


Lesenswert?

Ja, wird er noch ein "extended function set" schicken müssen.

Das haben meine LCDs bisher auch nicht :-)

Also beim Initialisieren noch dazu schicken: 0b00001001 (mit RE=1).

von Thorsten B. (thober)


Lesenswert?

spess53 schrieb:
> 'Extended Function Set'

Sehe ich gerade mit dem RE-Bit auf "High" schalte ich mit Bit 0 von 
"1 or 2 lines" mit 0 auf "4-Lines" mit eins um!

JA mal schauen wie ich das mache, muss jetzt erstmal meinen Sohn abholen 
also kann ich mich erst später wieder melden!



Danke schon mal!

von Thorsten B. (thober)


Lesenswert?

Habe das Problem gelöst!

void lcd_init( void )
{

    for(int i=0;i<150;i++) {
        _delay_ms(5);
    }
    LCD_PORT = 0x03;
    LCD_DDR = 0xFF;
    lcd_enable();
    _delay_ms(5);
    lcd_enable();
    _delay_ms(5);
    lcd_enable();
    _delay_ms(5);
    LCD_PORT = 0x02;  //4bit modus aktivieren
    lcd_enable();
    _delay_ms(5);
    lcd_command(0b00101100);  //Function set mit RE auf 1
    _delay_ms(5);

    lcd_command(0b00001001);   //4 Lines
  _delay_ms(5);
    lcd_command(0b00101000);  //Function set mit RE wieder auf 0
    _delay_ms(5);

    lcd_command(0b00001100);
  _delay_ms(5);
    lcd_command(0b00000100);
  _delay_ms(5);
    lcd_command(0x01); // lcd löschen
    _delay_ms(5);

}

Falls jemand das gleiche Problem hat habe ich hier mal meine 
Initialisierung gepostet!

von alex (Gast)


Lesenswert?

ich verwende ATmega 8 und PORTC aber es funktioniert nicht. Ich habe 
dein Code verwendet und PORTC umgesetzt und es macht nix, nur die 
beleuchtung funktioniert. Kann ich dein Code mit dem Atmega8 verwendet? 
Was muss ich sonst ändern damit ich PORTC verwenden kann?
Vielleicht liegt das Problem in der Schaltung. Wo kann ich eine richtige 
Schaltung finden?

Bitte, Hilfe!!. Ich muss meine Bachelor Arbeit abgeben und läuft nicht 
:-(

von Klaus W. (mfgkw)


Lesenswert?

Also wenn man eine Bachelorarbeit hinlegen will, könnte man schon mal 
mit dem Tutoral anfangen und vorhandene Schaltungen finden.

Oder im schlimmsten Netfall eine ordentliche Beschreibung des Problems 
hinlegen (was habe ich schon probiert, was geht, was geht nicht, wie 
sieht meine Schaltung aus, ...) und nicht einen der 1564234 alten 
LCD-Threads kapern mit der glorreichen Aussage "bei mir geht irgendwas 
nicht, sagt mir was ich falsch mache; natürlich dringend".

Aufgrund deiner tollen Beschreibung kann man nur spekulieren:
- irgendwas falsch angeklemmt
- Massefehler
- AVCC nicht versorgt
- falsches LCD
- falsches Programm
- falscher Brenner
- schlechter Strom
- Gegenwind
- Vollmond
- ...

von Tollität (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> - schlechter Strom

Vermutlich MHD abgelaufen.

von Espresso (Gast)


Lesenswert?

alex schrieb:
> Bitte, Hilfe!!. Ich muss meine Bachelor Arbeit abgeben und läuft nicht

Augen auf bei der Wahl des Studiums!

von alex (Gast)


Lesenswert?

Ich finde die Antwort gar nichts nett und ich verstehe auch nicht 
warum.Ich habe nicht gesagt: "bei mir geht irgendwas nicht, sagt mir was 
ich falsch mache". Wenn du meine Frage wieder lesen würdest, könntest du 
merke dass ich eine konkrete Frage gemacht habe:
"Kann ich dein Code mit dem Atmega8 verwendet?"
und
"Was muss ich sonst ändern damit ich PORTC verwenden kann?".
Ok, die zweite war mein Fehler, weil niemand wissen kann was ich schon 
geändert habe. Aber die erste Frage antwortet man mit Ja oder Nein.

Natürlich habe ich eine Schaltung entworfen (ich weiss nicht welche 
Tutorial du meinst, aber habe die Pins in Datasheet geschauet) und die 
sollte richtig sein, aber ich habe gefragt weil ich sonst kein Fehler 
finde und es sieht so aus als ob bei Thorsten funktioniert hätte.

von Mocca (Gast)


Lesenswert?

Als zukünftiger Bachelor solltest Du deine Frage aber schon selbst 
beantworten können...

von alex (Gast)


Lesenswert?

ich sehe... das Problem liegt an meine Bachelor Arbeite. Es tut mir leid 
dass ich für mein Bachelor Arbeit ein ATmega und ein dip204 verwenden 
muss, ein uC und ein LCD die ich nie verwendet habe, es war nicht meine 
Wahl.
Ich glaube wenn ich gesagt hätte dass ich es einfach für mich mache, 
wäret ihr viel netter gewessen.

Und ich glaube nicht dass ich meine Frage schon selbst beantworten 
können sollte, dafür sind Forums, nicht jeder weiss alles schon als er 
geboren ist... Ich studiere Elektronik, ja, aber ich hatte nur ein 
Semester Microcontrollertecnich und es ist nicht meine Stärke. Mein BA 
geht nicht um uC, geht um Filters, aber ich muss leider Daten anzeige.

:-(

von Eumel (Gast)


Lesenswert?

Es geht nicht darum, dass du das alles wissen musst sonder darum, dass 
du in der Lage sein solltest dir Wissen effektiv  anzueignen. Du machst 
eher den Eindruck als bräuchtest du jemanden der dir alles vorkaut.

von holger (Gast)


Lesenswert?

>Natürlich habe ich eine Schaltung entworfen

Und wie sieht die aus? Schaltplan und Foto vom
Aufbau posten. Dann noch deinen Quellcode wie du versucht hast
das LCD zu programmieren.

>Und ich glaube nicht dass ich meine Frage schon selbst beantworten
>können sollte, dafür sind Forums,

Das hast du aber komplett falsch verstanden.

Ich habe das programmieren von LCDs durch das Studium
von Datenblättern gelernt. Da gab es noch kein Internet.
So schöne Dinger in Buchform. Da war keiner der mir
den Arsch abgewischt hat. Das musste ich selber tun.

Wenn du es nicht mal schaffst ein LCD mit geklautem Code
in Gang zu bekommen tust du mir einfach nur noch leid.

Als Bachelor werden dir noch ganz andere Aufgaben
erteilt von denen du keine Ahnung hast. Bist du der Ansicht
das die auch von Anfragen in Foren erledigt werden?
Dann machen ja andere deine Arbeit und du bekommst die Kohle.

Mein Gott, was für ein armseliger Wicht.

von Kate (Gast)


Lesenswert?

your code doesn't work

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.