mit atmega32 44780 kompatibles lcd ansteuern

Gast #182317
Lesenswert?

Hi ich versuche mit einem ATMEGA32 und dem STK500 ein HD44780
kompatiebles LCD anzusteuern. Das LCD hängt an PortD des stk500, ich
schaffs irgendwie nicht, die LCD.h von Peter Fleury im programmers
Note
Pad2 einzubinden. avr gcc sagt folgendes:

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.1
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There
is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

make.exe: *** No rule to make target `LCDcontroll.o', needed by
`LCDcontroll.elf'.  Stop.

> Process Exit Code: 2

ich habe im makefile meines programmes die lcd.h als sourcefile
angegeben.

SRC = $(TARGET).c lcd.h

In der lcd.h habe ich XTAL2 auf 8000000 gesetzt da das auch mein µc
takt ist.

was habe ich falsch gemacht ?

irgendwie kann avr gcc die lcd.h nicht einbinden.

p.s. Die Lcd.h liegt natürlich auch in dem Ordner in dem sich das c
program befindet.
Gast #182318
Lesenswert?

>make.exe: *** No rule to make target `LCDcontroll.o', needed by
>`LCDcontroll.elf'.  Stop.

>irgendwie kann avr gcc die lcd.h nicht einbinden.

Wie kommst Du auf diese Idee?
Die Fehlermeldung sagt jedenfalls was anderes aus.
Wie ist Dein $(TARGET) definiert, und wie heist das 'main'-File?
Gast #182319
Lesenswert?

ich musste im makfile den Namen des mainfiles noch richtig eintragen.
Doch jetz kommt eine andere Fehlermeldung:

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.1
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.


Compiling: LCDTest.c
avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=8000000UL  -Os
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=LCDTest.lst  -std=gnu99 -MD -MP -MF
.dep/LCDTest.o.d LCDTest.c -o LCDTest.o

Linking: LCDTest.elf
avr-gcc -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=8000000UL  -Os
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=LCDTest.o  -std=gnu99 -MD -MP -MF
.dep/LCDTest.elf.d LCDTest.o lcd.h --output LCDTest.elf
-Wl,-Map=LCDTest.map,--cref    -lm
LCDTest.o(.text+0xa): In function `main':
C:\Projekte\µC\LCDTest/LCDTest.c:7: undefined reference to
`lcd_init'
LCDTest.o(.text+0xe):C:\Projekte\µC\LCDTest/LCDTest.c:8: undefined
reference to `lcd_clrscr'
LCDTest.o(.text+0x16):C:\Projekte\µC\LCDTest/LCDTest.c:9: undefined
reference to `lcd_puts'
make.exe: *** [LCDTest.elf] Error 1

> Process Exit Code: 2

was is hier los ?
Gast #182323
Lesenswert?

Ich weis leider nicht, wo die LCD-Lib bei Dir liegt, wenn sie im
gleichen Verzeichnis wie Dein Programmcode liegt, dann füge einfach
unterhalb der "LDFLAGS-Zeilen" folgende Zeile ein:

LDFLAGS += -L. -l<namederlib>

Vorraussetzung dafür ist, daß der Name der LCD-Lib mit 'lib'
beginnt!
Etwa so:

LDFLAGS += -L. -llcd

Dann muss im Verzeichnis eine Lib mit dem Namen 'liblcd.a' vorhanden
sein.
Gast #182329
Lesenswert?

so der compiler macht jetzt keinen ärger mehr ich habe einfach alle
files aus der LCD lib in meinen Projektordner kompiert.
was muss ich nun in der lcd.h umändern?
ich nutze ein 2*16 zeilen lcd einene atmega32 und das stk500, dass
stk500 ist über die pins von portd mit dem lcd verbunden

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