Forum: Mikrocontroller und Digitale Elektronik Bekomme Elektor 12/2004 Ultraschall Projekt nicht kompiliert


von Simon S. (simasc)


Angehängte Dateien:

Lesenswert?

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.

von Andreas B. (Gast)


Lesenswert?

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

von Simon S. (simasc)


Lesenswert?

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