Atmega16 EA DIP204-6 4-line

OP #1879134
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??
Angehängte Dateien:
#1879155
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.
Gast #1879209
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
OP #1879932
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!
Gast #2556512
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 
:-(
#2556605
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
- ...
Gast #2558692
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.
Gast #2558909
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.

:-(
Gast #2558915
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.
Gast #2558945
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren