Forum: Mikrocontroller und Digitale Elektronik LCD 16x2 an ATMEGA 8


von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
wollte jetzt zum ersten mal ein Display 16x2 an meinen Atmega 8 
anschließen. Funktioniert aber nicht wirklich.
Habe das Display im 4 bit Modus angeschlossen. Es leuchten in der ersten 
Zeile alle Kästchen.
Habe die lcd-routines.h, lcd-routines.c und das Hauptprogramm (Beispiel 
1) angelegt.
Bekomme aber beim compilern Fehlermeldungen. Was mache ich falsch?
Habe bei meiner Schaltung keinen externen Quarz, ist es auch ohne 
möglich? Wenn ja was muss ich ändern? Dieses hier löschen oder?

#ifndef F_CPU
#define F_CPU 3686400
#endif

Ich hoffe ihr könnt mir weiterhelfen.
Danke

Gruß
Sebastian

von Ingo (Gast)


Lesenswert?

Du wartest den Startup nicht ab . Was macht der Kontrasregler?

von Ingo (Gast)


Lesenswert?

Du hast außerdem Fehler beim Compilieren, beheb die erstmal.

von holger (Gast)


Lesenswert?

>Habe bei meiner Schaltung keinen externen Quarz, ist es auch ohne
>möglich?

Ja.

von Ingo (Gast)


Lesenswert?

Dann muss du aber dem Compiler sagen, dass die Frequenz eine andere ist!

von holger (Gast)


Lesenswert?

>Dann muss du aber dem Compiler sagen, dass die Frequenz eine andere ist

Schon richtig, aber wenn der Compiler eine zu hohe Taktrate
vorgespiegelt bekommt verlängern sich die Delays. Macht also
erstmal nichts aus. Wir wollen ja Text auf dem Display
sehen.

@Ingo
Du hast recht, erstmal müssen die Errors weg. Sonst
wird das nix.

Ein Bild vom Aufbau könnte auch hilfreich sein.

von Sebastian (Gast)


Lesenswert?

Danke erstmal für eure Antworten.
Kann mir von euch einer vll sagen was das für welche Fehler sind die auf 
dem Bild zu sehen sind. Habe ja am Programm bis jetzt noch nichts 
geändert.

Wenn ich den internen Taktgeber verwende kann ich doch dies alles 
weglassen:
#ifndef F_CPU
#define F_CPU 3686400
#endif

In dieser Anleitung steht auch das die Optimierung beim Compilern 
eingeschaltet werden muss. Wo kann ich dies machen???
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

von Hubert G. (hubertg)


Lesenswert?

Wenn du dein gesamtes Programm mal anhängst wird man dir sicher helfen 
können.

von Sebastian (Gast)


Lesenswert?

Unter diesem Link ist das ganze Programm zu sehen...(lcd-routines.h, 
lcd-routines.c, LCD Beispiel 1)
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

von Krapao (Gast)


Lesenswert?

Die Zeilennummern in deinem Screenshot kann ich keinen sinnvollen Zeilen 
im Listing des Tutorials zuordnen. Deshalb rate ich: Das #include 
<stdint.h> vergessen; der Compiler kennt uint8_t nicht.

Abhilfe in lcd-routines.c wäre dann:
1
#include <avr/io.h>
2
#include <stdint.h> 
3
#include "lcd-routines.h"
4
#include <util/delay.h>

Bzw. am Anfang der Datei lcd-routines.h:
1
#include <stdint.h>

http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html

Das Optimierungsflag stellst du im AVR-Studio 4 in den 
Projekteinstellungen ein. Gleich unter den Dropdown-Menüs für 
Prozessortyp und Taktrate.

von Hubert G. (hubertg)


Lesenswert?

Ich habe mir das Beispiel in das AVR-Studio4 geladen, kompiliert 
problemlos.

von Frank W. (comic12)


Lesenswert?

Hallo,

habe hier auch Probleme. Verwende AVR Studio 5.
Beim Build bekomme ich 4 Fehler

undefined reference to `lcd_init' das selbe mit data, setcursor, string.
Kann es sein das das Bild von Sebastian von einer früheren Studio 
Version stammt.

Kann mir jemand den Menue-Punkt nennen mit den ich source files zum 
Projekt hinzufügen kann ? Mit re klick, wie in anderen Beträgen 
beschrieben, komme ich da nicht weiter

mfg

framk

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.