Guten Abend, ich hab hier ein kleines großes Problem. Ich hab verschiedene Codeschnipsel aus dem Forum hier zusammengefügt und bisschen außenherum was geschrieben um eine LCD Uhr zu erhalten. Das LCD ist ein DOGM163 und die RTC ein DS1302, dass funktioniert schon wunderbar inkl einstellen, hat wunderbar compiled. Jetzt will ich noch eine Temperaturanzeige mit drin haben mit einem DS1820, da bin ich hier im Forum auch fündig geworden und habe das eingebaut. Nun habe ich das Problem, dass das AVR-Studio mir das ganze nicht compiled und ein undefined reference entgegenschmeißt(bzw 3) ich versteh aber nicht warum und wieso, ich hab den Temperaturteil genauso wie die anderen Teile eingefügt aber es funktioniert nicht. Vllt. findet ihr ja meinen Fehler, Sourcecode hängt im Anhang.
meist sind es aufrufe von funktionen die der compiler zu dieser zeit noch nicht kennt du musst dafür sorgen das variablen und funktionsprototypen bekannt sind
Ja stimmt das mit der Fehlermeldung kam mir auch gerade... sry Also die Prototypen stehen in den Headerfiles und die hat der Compiler zur Verfügung. Die einzelnen *.o Dateien kann ich alle ohne Fehler erstellen aber der Link zur *.hex schlägt dann fehl. Hier die Fehlermeldung:
1 | Build started 9.4.2010 at 22:18:38 |
2 | avr-gcc -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c |
3 | avr-gcc -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT lcd.o -MF dep/lcd.o.d -c ../lcd.c |
4 | avr-gcc -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT ds1202.o -MF dep/ds1202.o.d -c ../ds1202.c |
5 | avr-gcc -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT 1WIRE.o -MF dep/1WIRE.o.d -c ../1WIRE.C |
6 | cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++ |
7 | avr-gcc -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT DELAY.o -MF dep/DELAY.o.d -c ../DELAY.C |
8 | cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++ |
9 | avr-gcc -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT TEMPMEAS.o -MF dep/TEMPMEAS.o.d -c ../TEMPMEAS.C |
10 | cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++ |
11 | avr-gcc -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT TIMEBASE.o -MF dep/TIMEBASE.o.d -c ../TIMEBASE.C |
12 | cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++ |
13 | avr-gcc -mmcu=attiny84 -Wl,-Map=LCD_Clock.map main.o lcd.o ds1202.o 1WIRE.o DELAY.o TEMPMEAS.o TIMEBASE.o -o LCD_Clock.elf |
14 | main.o: In function `main': |
15 | D:\Daten\AVR-Projects\LCD_Clock\default/../main.c:28: undefined reference to `init_timer' |
16 | D:\Daten\AVR-Projects\LCD_Clock\default/../main.c:89: undefined reference to `start_meas' |
17 | D:\Daten\AVR-Projects\LCD_Clock\default/../main.c:94: undefined reference to `read_meas' |
18 | make: *** [LCD_Clock.elf] Error 1 |
19 | Build failed with 3 errors and 4 warnings... |
P.S.Controller ist ein ATTiny 84
1. alle Dateierweiterungen 'klein' machen 2. alles #include anpassen 3. compilieren und linken 4. in Zukunft besser auf die Namen achten
Vielen Danke für die schnelle Hilfe, ich hab bestimmt schon 2Stunden gesucht, aber das die Erweiterung *.H daran schuld ist, da bin ich nicht draufgekommen. Jetzt funktionierts :)
Ralf G. schrieb: > Vielen Danke für die schnelle Hilfe, ich hab bestimmt schon 2Stunden > gesucht, aber das die Erweiterung *.H daran schuld ist, da bin ich nicht > draufgekommen. Jetzt funktionierts :) Die Erweiterung *.H ist es nicht :-) Diese Warnung cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++ sagt dir gar nichts? 1WIRE.C wird im C++ Modus kompiliert und nicht im C Modus. Ditto für alle anderen *.C
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.