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.
>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?
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 ?
Du hast die 'LCD-Lib' beim Linken vergessen (in den LDFLAGS)!
das heißt ? was muss ich jetzt machen ? sorry bin c neuling
also die lcd.h habe ich im main file so eingebunden #include "lcd.h" im make file siehts so aus: SRC = $(TARGET).c lcd.h
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.
Also die dateien aus peter Fleury`s lcd lib heißen: lcd.h und lcd.c muss ich die lcd.h beim Linker angeben so: LDFLAGS += -L. -llcd.h oder so: LDFLAGS += -L. -llcd.c ?
Argh! Nein! Ich dachte Du hast eine echte Library zum Dazulinken verwendet, sorry! Du musst anstelle des lcd.h das lcd.c im Makefile unter SRC eintragen. Entschuldige bitte die Verwirrung :-)
es funktioniert leider immer noch nicht hast Du vielleicht einen beispiel code oder so etwas wie wo man sieht wie man alles einstellen muss ?
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
Da kann ich Dir nicht weiterhelfen. Ich hätte aber noch eine klitzekleine Bitte: Poste doch bitte nicht immer alle Beiträge mehrfach ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.