www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8 und LCD


Autor: Heinz peter Posch (poschi8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle zusammen!!!

Ich möchte mit meinem ATMEGA8 ein 8x2 LCD ansteuern, fürs erste möchte 
ich nur mal nen einfach Text rausschreiben.
Im Internet habe Ich bereits viele Sourcen gefunden da sind aber immer 
mehrere Datein und Ich weis nicht wie man die zusammen in ein Hex-File 
bekommt.
Es wäre toll wenn ihr mir dabei helfen könntet.

Poschi

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welche Sprache ?

BASCOM kann ich dir anbieten.

B.

Autor: Dussel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise muss man die alle dem aktiven Projekt hinzufügen und dann 
einfach kompilieren. Ob das bei Assembler auch so geht, weiß ich jetzt 
nicht.

Autor: Heinz peter Posch (poschi8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist AVR GCC...

Naja Bascom wär auch eine Lösung aber mir wäre AVR GCC lieber da wir 
auch un der Schule damit arbeiten werden, aber zum Testen wäre das schon 
Toll. :)

Poschi

Autor: Heinz peter Posch (poschi8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem hinzufügen und kompilieren funktioniert nicht, Ich bekomme 
immer folgenden Fehler.

Poschi

Build started 20.2.2010 at 15:13:32
avr-gcc  -mmcu=atmega8 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT LCD.o -MF 
dep/LCD.o.d  -c  ../LCD.c
avr-gcc -mmcu=atmega8 -Wl,-Map=LCD.map LCD.o     -o LCD.elf
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr4/crt 
m8.o:(.init9+0x0):  undefined reference to `main'
make: *** [LCD.elf] Error 1
Build failed with 1 errors and 0 warnings...

Autor: C. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heinz peter Posch schrieb:
> c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr4/crt 
m8.o:(.init9+0x0):
> undefined reference to `main'

davon kann ich dir ein Lied singen ;)
schau mal links oben, ich nehme an du arbeitest z.b. mit AVR STudio, 
dort musst du alle .c source Files und alle Header Dateien .h nochmal 
extra angeben.
Die Dateien nur zu Öffnen im Programm allein reicht nicht aus

Gruß Christian

Autor: Heinz peter Posch (poschi8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis, jetzt hats geklappt!!! freu

Poschi

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach LCD-Ausgabe in BASCOM



'=======================================================
'
'     LCD-Ausgabe am Port D
'     4-Bit Mode,E=Portd.5, Rs=Portd.4, R/W=GND(fest)
'
'=======================================================

$regfile = "m8def.dat"
$crystal = 10001666         'Mini-Atmega 4-Platine mit B-C-D-Port
$hwstack = 32               'default use 32 for the hardware stack
$swstack = 10               'default use 10 for the SW stack
$framesize = 40             'default use 40 for the frame space

Config Lcdbus = 4
Config Lcd = 16 * 2       'Lcd Initialisieren  (geht auch mit 8 
Char/Zeile)
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , 
Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4

Cls                         'clear Screen

Lcd "Test"                  'Ausgabe

End

Autor: Heinz peter Posch (poschi8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das mit Bascom hat nicht Funktioniert, aber Ich habe es bereits in 
C geschafft.
Jedoch kommt bei mir immer nur ein schwarzer Balken am LCD sonst nichts.
Hat jemand ein Programm Beispiel für mich, mit Pinbelegung?!

Poschi

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es wäre schon hilfreich zu wissen welches Display du verwendest.
Stichwort: Controller

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heinz peter Posch schrieb:

> Hat jemand ein Programm Beispiel für mich, mit Pinbelegung?!

Die Pinbelegung ist die, die du benutzt.
Die kann hier keiner wissen.

Ansonsten:
Im Tutorial gibt es LCD-Beispielcode

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heinz peter Posch schrieb:

> Jedoch kommt bei mir immer nur ein schwarzer Balken am LCD sonst nichts.

Wenn der schwarze Balken nur über einen Teil des LCDs ist, dann mal den 
Kontrast verstellen.

Autor: Phantomix Ximotnahp (phantomix) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> > Jedoch kommt bei mir immer nur ein schwarzer
> > Balken am LCD sonst nichts.

> Wenn der schwarze Balken nur über einen Teil des LCDs ist,
> dann mal den Kontrast verstellen.

Er hat ein 8x2. Meine Glaskugel sagt mir, dass die erste Zeile schwarz 
ist, was auf eine nicht geglückte Initialisierung hindeutet.
Einen solchen schwarzen Balken erhält man übrigens, sobald das Display 
Strom hat.
Ursachen warums nicht geht kann das viele haben.

Bitte um mehr Informationen:

- Displaytyp inkl. Displacontroller
- AVR-Typ
- Beschaltung des Displays (4bit-Modus? 8bit-Modus? Welcher pin wo 
dran?)
- Quellcode. Mindestens die komplette Initialisierung und Ansteuerung. 
Und die Main-Funktion. Lieber wäre noch der komplette Quellcode

Autor: Heinz peter Posch (poschi8)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Display hat nen KS0066 Controller oder ähnlich (laut Datenblatt)

http://www.produktinfo.conrad.com/datenblaetter/17...

AVR: ATMega8-16PU

Beschaltung im 4 Bit Modus (siehe code)

Ist aus dem Tutorial

1 Vss GND
2 Vcc 5V
3 Vee GND oder Poti (siehe oben)
4 RS PD4 am AVR
5 RW GND
6 E PD5 am AVR
7 DB0 offen
8 DB1 offen
9 DB2 offen
10 DB3 offen
11 DB4 PD0 am AVR
12 DB5 PD1 am AVR
13 DB6 PD2 am AVR
14 DB7 PD3 am AVR

Autor: Christian D. (schlenz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

sitze gerade an meinem neuen 2x16 LCD von Displaytech (LCD 162C) und 
bekomme einfach kein zeichen angezeigt. Irgendwas muss mit meiner 
Initialisierung nicht stimmen.

Das LCD soll mit einem Atmega8 mit 8Mhz angesteuert werden. Die 
Ansteuerung soll im 4bit Modus erfolgen. DB4..DB7 des LCD hängen an 
PORTC0..3, RS an PORTC4, E an PORTC5 und R/W auf GND. 
Kontrasteinstellung über Poti.
Die Verschaltung ist richtig, habe es mehrmals überprüft. Das LCD 
funktioniert auch bei Einschalten der Versorgung (erste Zeile zeigt 
ausgefüllte Kästchen an bei erhöhtem Kontrast).
Es kann also nur am Code liegen - meiner Meinung nach an der Init, da 
wahrscheinlich nicht auf 4bit umgeschalten wird. Die Einstellung für 2 
Zeilen wird ja auch nicht übernommen.

Bin aber inzwischen mit meinem Latein am Ende. Habe schon großzügige 
Pausen eingeplant, hat aber nichts gebracht.

Vielleicht findet ja jemand einen Fehler im Code.

Gruß
Christian

Autor: Dirk M. (dmd)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

hier ist mal mein Init-Code. Der funktioniert bei mir tadellos auf einem 
Mega8 mit 3,686 Mhz. Die UP's für die Wartezeiten habe ich umbenannt, 
damit du deine Zeitschleifen anpassen kannst.

Vielleicht hilft's ja...

Dirk

Autor: Christian D. (schlenz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin leider jetzt am Wochenende erst dazu gekommen, es nochmal zu 
probieren. Leider funktioniert es mit deiner Initialisierung auch nicht. 
Es wird absolut nichts angezeigt.
Hatte das Display die Woche mit bei einem Bekannten, der sein LCD mit 
einem Arduino Nano ansteuert...dort hat es funktioniert, es ist also 
nicht defekt. Bin gerade dabei, mir die c++ - libraries des Arduino zur 
Initialisierung anzusehen. Vielleicht fällt mir ja noch etwas auf, was 
ich in meinem Code nicht berücksichtigt habe.

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.