Forum: Mikrocontroller und Digitale Elektronik Kompilieren mit Fehler darf nicht sein


von Alain F. (fox82)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen

Irgendwie habe ich ein Problem.

So ich habe folgendes Programm heruntergeladen:

http://www.avrfreaks.net/index.php?module=Freaks%20Files&func=viewFile&id=1893&showinfo=1

1. Ich habe einen neuen Ordner angelegt für meine AVR-Projekte.
2. Die Datei main.c wurde in meine neue Datei DS1307.c eingefügt.

(Siehe Angehängte Datei inklusiv AVR-Studio .aps .aws)

Installiert habe ich AVR-Studio 4.14 Build 589
WinAVR    20080610    June 10, 2008 
http://sourceforge.net/project/showfiles.php?group_id=68108


Das Problem ist mit dieser #include "twi.h"
Wenn ich aber mache #include "twi.c" klappt es das Programm läuft aber 
nicht richtig, dass kann es doch nicht sein...

Könnt Ihr meine Projektdatei kompilieren?


Beim Kompilieren bekomme ich einen Fehler:

rm -rf DS1307.o  DS1307.elf dep/* DS1307.hex DS1307.eep DS1307.lss 
DS1307.map
Build succeeded with 0 Warnings...
avr-gcc.exe  -mmcu=atmega32 -Wall -gdwarf-2 -Os -std=gnu99 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP 
-MT DS1307.o -MF dep/DS1307.o.d  -c  ../DS1307.c
In file included from ../DS1307.c:45:
d:/winavr-20080610/lib/gcc/../../avr/include/util/delay.h:85:3: warning: 
#warning "F_CPU not defined for <util/delay.h>"
avr-gcc.exe -mmcu=atmega32 -Wl,-Map=DS1307.map DS1307.o     -o 
DS1307.elf
DS1307.o: In function `main':
C:\(Meine Daten)\Privat\(AVR Projekte)\Projekte\Real Time Clock 
DS1307\default/../DS1307.c:800: undefined reference to `twiInit'
DS1307.o: In function `showDateTime':
C:\(Meine Daten)\Privat\(AVR Projekte)\Projekte\Real Time Clock 
DS1307\default/../DS1307.c:306: undefined reference to `twiWrite'
C:\(Meine Daten)\Privat\(AVR Projekte)\Projekte\Real Time Clock 
DS1307\default/../DS1307.c:317: undefined reference to `twiRead'
DS1307.o: In function `squareWaveControl':
C:\(Meine Daten)\Privat\(AVR Projekte)\Projekte\Real Time Clock 
DS1307\default/../DS1307.c:736: undefined reference to `twiWrite'
DS1307.o: In function `__vector_4':
C:\(Meine Daten)\Privat\(AVR Projekte)\Projekte\Real Time Clock 
DS1307\default/../DS1307.c:208: undefined reference to `twiDecTo'
make: *** [DS1307.elf] Error 1
Build failed with 5 errors and 1 warnings...

von Jörg X. (Gast)


Lesenswert?

Füge im "AVR-GCC"-Fenster die (richtigen) Header- und Sourcedateien ein, 
stell unter Project->Configuration Options den AVR-Typ und -Takt und die 
Optimierung ein, und schon kompiliert das ganze.

(brauchen wir vielleicht ein AVR-Studio Tutorial? (oder ein 
RTFM-tutorial??) -- du bist mindestens der 2. in den letzten  zwei 
wochen, der so ein "Problem" hat)

hth. Jörg

von Alain F. (fox82)


Lesenswert?

Habe ich gemacht:

ATMega32
mit 8000000 Hz
Optimierung: -0S

Gibt trotzdem noch Fehler...Kann denn jemand mein angehängtes Projekt 
für ein ATMega32 kompilieren? Ja / Nein

Kann doch nicht sein, dass es nicht geht. Jemand anders hat geschrieben 
dass er den Code auf einem ATMega32 laufen hat.

von Jörg X. (Gast)


Angehängte Dateien:

Lesenswert?

So?

von Jörg X. (Gast)


Angehängte Dateien:

Lesenswert?

shit, hab natürlich vergessen zu speichern :(
jetzt aber

von Alain F. (fox82)


Lesenswert?

OK Super Danke. Jetzt gehts bei mir auch.

Was war jetzt der Fehler?

So kann ich daraus etwas lernen.

von Jörg X. (Gast)


Lesenswert?

> Füge im "AVR-GCC"-Fenster die (richtigen) Header- und Sourcedateien ein,
> stell unter Project->Configuration Options den AVR-Typ und -Takt und die
> Optimierung ein, und schon kompiliert das ganze.
tip: rechtsklick im AVR-GCC fenster

von Alain F. (fox82)


Lesenswert?

Hehe OK. Jetzt habe ich das gecheckt. Hatte keine Ahnung dass man das so 
eintragen muss.

Danke für die Hilfe.

von Jörg X. (Gast)


Lesenswert?

Bitteschön ;)

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
Noch kein Account? Hier anmelden.