LCD 16x2 Problem

Gast #2757917
Hallo,
Habe ein LCD 16x2 an einem Atmega8 über das STK500 angeschlossen. 
Verwende die Beispielprogramme aus dem AVRGCC Tutorial. Hatte vor ein 
paar Monaten schon mal ein LCD 16x2 an einem Atmega8 und dem AVRISP MKII 
betrieben das auch super funktionierte. (mit dem gleichen 
Beispielprogramm aber AVR Studio 4)

Bin jetzt auf das STK500 und AVR Studio 6 umgestiegen und jetzt 
funktionierts nicht so wie ich will... wie so oft :-)

Habe ein Bild angehängt wo normalerweise nur in der ersten zeile "Test" 
und in der zweiten Zeile auch "Test" angezeigt werden soll. Bei jedem 
Reset wird ein anderer Text angezeigt und manchmal auch gar nichts. An 
was kann das liegen.

Habe alle Anschlüsse vom Display überprüft und es liegt kein Kurzschluss 
vor.

Gruß
Dominik
Angehängte Dateien:
Gast #2757939
Hast du an dem Beispielprog nur die eine Stelle von 'Hello World!' in 
Test geändert? Und schau mal, ob du nicht noch irgendwelche Delays oder 
Befehle anpassen musst.
Gast #2757950
Ja hab nur die Stelle von "Hello World!" in "Test" geändert.
F_CPU 3686400 muss ich nicht ändern wenn ich keinen externen Quarz 
benütze oder? Mein ISP Clock ist auf 113,92kHz eingestellt.
Gast #2757962
Wenn ich kein externes Makefile benütze dann muss ich doch auch nicht 
dies anhängen oder? (MCU=atmega8) Das macht doch AVR Studio beim 
erstellen von einem Projekt selber.

Was ist hiermit gemeint?
//    lcd-routines.c in SRC = ... Zeile anhängen
Gast #2757974
In welchem Kontext steht das denn?

Und mit der Frequenz: "Standardmäßig" sind die Fuses (hfuse = 0xd9, 
lfuse = 0xe1) auf 1MHz eingestellt, dass wäre dann: "F_CPU 1000000", les 
aber am besten mal die Fuses aus und sag uns wie sie lauten.

Grüße,
Lucas
Gast #2757988
Hab die Fuses ausgelesen...
High = 0xD9
Low = 0xE1
hab daraufhin die Frequenz auf "F_CPU 1000000" gestellt aber der Fehler 
ist genauso wie vorher noch da.
#2758006
Hast du die Leitungen für das LCD auch an die richtigen Pins 
angeschlossen? Wichtig ist, dass sie am selben Port hängen, wenn du den 
Queltext nicht veränderst.

Schau vor allem, ob der R/S Pin deines Displays richtig verbunden ist.
Gast #2758027
Ja hab sie am PortD wie im Tutorial angeschlossen.
Habe auch gerade alle nochmal nachgemessen und keinen Fehler gefunden.
Werde jetzt nochmal ein neues LCD ausprobieren und schauen ob sich was 
ändert.
Gast #2759516
holger schrieb:
> Hier mal eine HEX Datei für dich zur Schaltungskontrolle.

Tut mir leid wenn ich jetzt so blöd Frage aber was muss ich mit der Hex 
Datei machen??? Bin noch anfänger zum Thema uC

Muss ich einfach die Hex Datei auswählen und übertragen???

Habs versucht manchmal ist nur eine Zeile weiß hinterlegt und manchmal 
beide...was sollte den passieren?
Gast #2759544
>Tut mir leid wenn ich jetzt so blöd Frage aber was muss ich mit der Hex
>Datei machen??? Bin noch anfänger zum Thema uC
>
>Muss ich einfach die Hex Datei auswählen und übertragen???

Ja.

>Habs versucht manchmal ist nur eine Zeile weiß hinterlegt und manchmal
>beide...was sollte den passieren?

Es sollte eigentlich "Line1" in der ersten Zeile und "Line2"
in der zweiten Zeile zu sehen sein.

Ich hab das für den ATMega8 kompiliert mit folgender
Pinbelegung wie im Tutorial:

RS      PORTD4
E       PORTD5
RW      an Masse GND
LCD_D4  PORTD0
LCD_D5  PORTD1
LCD_D6  PORTD2
LCD_D7  PORTD3
Gast #2759548
Anfänger schrieb:
> hab daraufhin die Frequenz auf "F_CPU 1000000" gestellt aber der Fehler

Falls du das mit einer "#define"-Anweisung gemacht hast, geht das 
schief, weil 1000000 nicht in eine 16-Bit Zahl passt.
1
#define F_CPU 1000000UL
wäre da passender.
Gast #2759550
>@Holger: Display an welchen Port? 4-Bit oder 8-Bit? Frequenz?

Natürlich 4Bit, PORTD siehe oben. Frequenz absichtlich 16MHz
und nicht 1MHz damit die delays auf jeden Fall passen.
Gast #2759569
Hab jetzt gerade nochmal alle Anschlüsse nachgemessen...lötstellen 
zusätzlich unterm mikroskop angeschaut...nochmal ein neues Display 
ausprobiert...einen neuen Atmega8 gesteckt... und habe immer noch das 
selbe problem.

Werd Morgen mal einen Bekannten ein Display mitgeben der es mal 
ausprobieren soll.

Aber danke trotzdem für eure Hilfe.
Gast #2759587
So, für alle Zweifler:

Mal eben ein 2x16 Display per Jumper Wires
angepappt. Quarz 10MHz. Steckte da halt grad drin.
Das blind programmierte Programm reingebrutzelt.
Also die HEX Datei aus dem Anhang.

Anzeige:

Line1
Line2
Gast #2760323
Hab jetzt das STK500 einmal an meinem alten PC über rs232 kabel und 
nicht am laptop über usb to serial prolific adapter angesteckt und wenn 
ich jetzt die Hex datei auf meinen mikrocontroller übertragen will 
bekomm ich zwei Fehler die ich mit dem gleichen Programm am Laptop nicht 
hatte.
Angehängte Dateien:
Gast #2763489
So jetzt hab ich mal mein Programm mit dem AVR ISP MK2 übertragen und 
siehe es funktioniert... :-) Muss ich irgendwelche fuses,... beim stk500 
ändern damit es funktioniert?
Irgendwelche ideen?

Danke

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.