www.mikrocontroller.net

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


Autor: Thorsten B. (thober)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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??

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiere mal in lcd-rotines.h diesen Teil:
#define LCD_DDADR_LINE1         0x00
#define LCD_DDADR_LINE2         0x20
#define LCD_DDADR_LINE3         0x40
#define LCD_DDADR_LINE4         0x60
zu ändern in:
#define LCD_DDADR_LINE1         0x00
#define LCD_DDADR_LINE2         0x40
#define LCD_DDADR_LINE3         0x14
#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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

Die Adressen sind schon richtig.

MfG Spess

Autor: Klaus Wachtler (mfgkw)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Das ist ein EA-Dip:

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

MfG Spess

Autor: Klaus Wachtler (mfgkw)
Datum:

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

Autor: Klaus Wachtler (mfgkw)
Datum:

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

Autor: Thorsten B. (thober)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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!

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist jetzt aber nicht dein ursprüngliches Programm?

Autor: Thorsten B. (thober)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Thorsten B. (thober)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Thorsten B. (thober)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 
:-(

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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
- ...

Autor: Tollität (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
> - schlechter Strom

Vermutlich MHD abgelaufen.

Autor: Espresso (Gast)
Datum:

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

Augen auf bei der Wahl des Studiums!

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mocca (Gast)
Datum:

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

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

:-(

Autor: Eumel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
your code doesn't work

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.