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??
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.
Hi
>Probiere mal in lcd-rotines.h diesen Teil:
Die Adressen sind schon richtig.
MfG Spess
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.
ok, dann doch die originalen. Gut, daß wir darüber gesprochen haben :-)
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!
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.
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
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).
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!
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!
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 :-(
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 - ...
alex schrieb: > Bitte, Hilfe!!. Ich muss meine Bachelor Arbeit abgeben und läuft nicht Augen auf bei der Wahl des Studiums!
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.
Als zukünftiger Bachelor solltest Du deine Frage aber schon selbst beantworten können...
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. :-(
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.
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.