Hallo! In der Elektor 12/2004 gibt es auf Seite 30ff das Projekt "In höchsten Tönen - Ultraschall Entvernungs und Füllstandmesser". Da dieses Projekt bereits einen ATmega zum Messen der Entvernung verwendet und allgemein einen gut durchdachten Eindruck macht habe ich die Schaltung leicht modifiziert als kleine Projektarbeit aufgebaut (Akku zur Stromversorgung über DC/DC Wandler; kein Display; FT232RL für Serielle kommunikation mit PC - darüber soll später Distanz ausgegeben werden). Die Elektronik steht soweit, nur fehlt nun noch die Software. Eigentlich wollte ich einfach nur die vorhandene Elektor Software meinen Bedüfnissen anpassen, musste nun aber feststellen, dass sich das Projekt noch nicht einmal kompilieren lässt. Source: http://213.222.12.204/Default.aspx?tabid=27&year=2004&month=12&art=72992&PN=On Direct Download: http://213.222.12.204/Portals/0/Magazine/Downloads/2004/040015-11.zip Fehlermeldung bei "make all" (Komplette Meldung siehe TXT Anhang): signal.h:36:2: #warning "This header file is obsolete. Use <avr/interrupt.h>. Hinzu kommt, dass die calibrate.c nicht vollständig ist. Der Block der ersten Funktion wird noch geöffnet, danach gibt es jedoch keinen weiteren Code. Bisher habe ich mich in der µControllerwelt nur mit ASM beschäftigt, C/C++ kam bei mir bisher nur auf x86 zum Einsatz. Daher bin ich mit dem Problem nun doch etw. überfordert. Offensichtlich reicht es nicht aus einfach anstelle der signal.h die interrupt.h einzubinden (Neue Funktionen!?) & Elektor hat es nicht für nötig gehalten die genaue Version von WinAVR anzugeben, mit der das Kompilieren noch geht. Ich wäre euch daher sehr dankbar, wenn ihr mir soweit unter die Arme greifen könntet, dass das Projekt wenigstens einmal lauffähig kompiliert werden kann! BIG THX! Simon S.
Ohne Änderung kein Fehler... > "make.exe" all -------- begin -------- avr-gcc (GCC) 3.4.3 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: measure.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Werror -Wa,-adhlns=measure.lst -std=gnu99 measure.c -o measure.o Compiling: result.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Werror -Wa,-adhlns=result.lst -std=gnu99 result.c -o result.o Compiling: temperature.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Werror -Wa,-adhlns=temperature.lst -std=gnu99 temperature.c -o temperature.o Compiling: clock.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Werror -Wa,-adhlns=clock.lst -std=gnu99 clock.c -o clock.o Compiling: command.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Werror -Wa,-adhlns=command.lst -std=gnu99 command.c -o command.o Assembling: uart.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=uart.lst,-gstabs uart.S -o uart.o Assembling: utilities.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=utilities.lst,-gstabs utilities.S -o utilities.o Assembling: sseg.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=sseg.lst,-gstabs sseg.S -o sseg.o Assembling: lcd.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=lcd.lst,-gstabs lcd.S -o lcd.o Assembling: adc.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=adc.lst,-gstabs adc.S -o adc.o Assembling: signal.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=signal.lst,-gstabs signal.S -o signal.o Assembling: timing.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=timing.lst,-gstabs timing.S -o timing.o Assembling: control.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=control.lst,-gstabs control.S -o control.o Linking: measure.elf avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Werror -Wa,-adhlns=measure.o -std=gnu99 measure.o result.o temperature.o clock.o command.o uart.o utilities.o sseg.o lcd.o adc.o signal.o timing.o control.o --output measure.elf -Wl,-Map=measure.map,--cref -lm Creating load file for Flash: measure.hex avr-objcopy -O ihex -R .eeprom measure.elf measure.hex Creating load file for EEPROM: measure.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 -O ihex measure.elf measure.eep avr-gcc -S -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Werror -Wa,-adhlns=measure.lst -std=gnu99 measure.c -o measure.s Creating Extended Listing: measure.lss avr-objdump -h -S measure.elf > measure.lss Creating Symbol Table: measure.sym avr-nm -n measure.elf > measure.sym Size after: text data bss dec hex filename 6914 486 824 8224 2020 measure.elf > Process Exit Code: 0 mfg Andreas
Vielen Dank! Mit avr-gcc (GCC) 3.4.3 kompiliert es :] Was es mit der calibrate.c auf sich hat ist mir noch immer nicht klar - aber solange es läuft ^^ THX Simon S.
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.