Atmega8 und LCD

OP #1606627
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
OP #1606689
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...
Gast #1606731
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
Gast #1607063
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
#1608169
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
OP #1608287
Lesenswert?

Display hat nen KS0066 Controller oder ähnlich (laut Datenblatt)

http://www.produktinfo.conrad.com/datenblaetter/175000-199999/183369-da-01-en-LCD_Modul_8x2_Zeichen.pdf

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
Angehängte Dateien:
#1625481
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
Angehängte Dateien:
#1633201
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren