www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Atmega8 und LCD

Autor: Heinz peter Posch (poschi8)
Datum:

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:

welche Sprache ?

BASCOM kann ich dir anbieten.

B.
Autor: Dussel (Gast)
Datum:

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:

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:

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/crtm8.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:

Heinz peter Posch schrieb:
>
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr4/crtm8.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:

Danke für den Hinweis, jetzt hats geklappt!!! freu

Poschi
Autor: Bernadette (Gast)
Datum:

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:

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:

Es wäre schon hilfreich zu wissen welches Display du verwendest.
Stichwort: Controller
Autor: Karl heinz Buchegger (kbuchegg) (Moderator)
Datum:

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:

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)
Datum:

> > 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:

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:

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:

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:

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email ü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




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net