Im Normalfall genügt es einfach makefile zu öffnen und dann zu kompilieren. Der compiler, wenn denn alles richtig installiert ist, macht dann die .hex daraus. Diese kannst du flashen wie du willst.
In C ist es halt so üblich die Unterfunktionen auszulagern, somit bleibt der Code sehr übersichtlich. Der Compiler mixt dann alles wieder zusammen.
mfg
Das AVR-Studio braucht kein externes makefile.
Ansonst nur auf F7 drücken.
KLappt irgendwie nicht.
Also, ich öffne AVR-Studio. Gehe auf open file und öffne alle files, außer das makefile.
Dann gehe ich auf F7. Nichts passiert.
Oder ich nehme das makefile dazu, öffne es durch doppelklick.
Nun weiß ich bei dem Programm nicht mit welchem Befehl ich kompilieren kann !?!
Ich habe übersehen das du Studio5 hast. Es wird aber auch hier einen Button oder einen Menuepunkt mit Build oder Compile geben.
Einen Schritt bin ich schon weitergekommen:
Ich erstelle ein neues Projekt (executable project, Suche den Atmega8, o.k.). Dann erscheint ein AVRGCC2.c im Fenster.
Zu diesem Fenster dazu öffne ich die anderen files (werden auch alle in unterschiedlichen Fenstern geöffnet).
Ich lösche nun das Fenster AVRGCC2.c und das makefile fenster.
Dann gehe ich auf "build solution".
Offensichtich kompiliert er jetzt, nur weiß ich nicht wo ich dann das .hex file finden kann.
Stimmt der Weg eigentlich?
In einem build-Fenster erscheint übrigens folgender text:
------ Build started: Project: AVRGCC2, Configuration: Debug AVR ------
Build started.
Project "AVRGCC2.avrgccproj" (default targets):
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\AVR Studio 5.0\Vs\AvrGCC.targets" from project "D:\Eigene Dateien Acer\__Daten\_Holger\_Hobby\elektronik\sensorboard \avr studio dateien\AVRGCC2\AVRGCC2\AVRGCC2.avrgccproj" (target "Build" depends on it):
Using "RunAvrGCC" task from assembly "C:\Program Files (x86)\Atmel\AVR Studio 5.0\Vs\AvrGCCLib.dll".
Task "RunAvrGCC"
C:\Program Files (x86)\Atmel\AVR Studio 5.0\AVR ToolChain\bin\make.exe all
AVRGCC2.c
Invoking: AVR/GNU C Compiler
"C:/Program Files (x86)/Atmel/AVR Studio 5.0/AVR ToolChain/bin/avr-gcc.exe" -funsigned-char -funsigned-bitfields -O0 -fpack-struct -fshort-enums -g2 -Wall -c -std=gnu99 -mmcu=atmega8 -MD -MP -MF"AVRGCC2.d" -MT"AVRGCC2.d" -o"AVRGCC2.o" ".././AVRGCC2.c"
Finished building: .././AVRGCC2.c
Building target: AVRGCC2.elf
Invoking: AVR/GNU C/C++ Linker
"C:/Program Files (x86)/Atmel/AVR Studio 5.0/AVR ToolChain/bin/avr-gcc.exe" -mmcu=atmega8 -Wl,-Map=AVRGCC2.map -o AVRGCC2.elf AVRGCC2.o
Finished building target: AVRGCC2.elf
"C:/Program Files (x86)/Atmel/AVR Studio 5.0/AVR ToolChain/bin/avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "AVRGCC2.elf" "AVRGCC2.hex"
"C:/Program Files (x86)/Atmel/AVR Studio 5.0/AVR ToolChain/bin/avr-objdump.exe" -h -S "AVRGCC2.elf" > "AVRGCC2.lss"
"C:/Program Files (x86)/Atmel/AVR Studio 5.0/AVR ToolChain/bin/avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "AVRGCC2.elf" "AVRGCC2.eep" || exit 0
AVR Memory Usage
----------------
Device: atmega8
Program: 70 bytes (0.9% Full)
(.text + .data + .bootloader)
Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
Done executing task "RunAvrGCC".
Done building target "CoreBuild" in project "AVRGCC2.avrgccproj".
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Target "Build" in file "C:\Program Files (x86)\Atmel\AVR Studio 5.0\Vs\Avr.common.targets" from project "D:\Eigene Dateien Acer\__Daten\_Holger\_Hobby\elektronik\sensorboard \avr studio dateien\AVRGCC2\AVRGCC2\AVRGCC2.avrgccproj" (entry point):
Done building target "Build" in project "AVRGCC2.avrgccproj".
Done building project "AVRGCC2.avrgccproj".
Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
So, ich hab das jetzt mal mit WinAVR compiliert. Ging einwandfrei bei mir.
Hier die .hex: http://www.mediafire.com/?9onssvqjp1nmhu4
mfg
Lesezeichen