C-Programm compilieren

Gast #455709
Lesenswert?

Hallo, mein compailer stellt einige Fehler fest:

> "make.exe" all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=eeprom_001.lst  -std=gnu99 eeprom_001.c 
\
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > eeprom_001.d; \
[ -s eeprom_001.d ] || rm -f eeprom_001.d
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=timer0_001.lst  -std=gnu99 timer0_001.c 
\
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > timer0_001.d; \
[ -s timer0_001.d ] || rm -f timer0_001.d
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=adc001.lst  -std=gnu99 adc001.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > adc001.d; \
[ -s adc001.d ] || rm -f adc001.d
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=uart001.lst  -std=gnu99 uart001.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > uart001.d; \
[ -s uart001.d ] || rm -f uart001.d
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=pwm001.lst  -std=gnu99 pwm001.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > pwm001.d; \
[ -s pwm001.d ] || rm -f pwm001.d
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=main.lst  -std=gnu99 main.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > main.d; \
[ -s main.d ] || rm -f main.d

-------- 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: main.c
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes 
-Wa,-adhlns=main.lst  -std=gnu99 main.c -o main.o
main.c: In function `main':
main.c:324: warning: implicit declaration of function `outp'
main.c:359: warning: implicit declaration of function `inp'

Compiling: pwm001.c
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes 
-Wa,-adhlns=pwm001.lst  -std=gnu99 pwm001.c -o pwm001.o
pwm001.c: In function `pwm_init':
pwm001.c:22: warning: implicit declaration of function `outp'

Compiling: uart001.c
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes 
-Wa,-adhlns=uart001.lst  -std=gnu99 uart001.c -o uart001.o
uart001.c: In function `uart_puts_p':
uart001.c:222: warning: implicit declaration of function `PRG_RDB'

Compiling: adc001.c
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes 
-Wa,-adhlns=adc001.lst  -std=gnu99 adc001.c -o adc001.o

Compiling: timer0_001.c
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes 
-Wa,-adhlns=timer0_001.lst  -std=gnu99 timer0_001.c -o timer0_001.o

Compiling: eeprom_001.c
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes 
-Wa,-adhlns=eeprom_001.lst  -std=gnu99 eeprom_001.c -o eeprom_001.o

Linking: main.elf
avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o 
-std=gnu99 main.o pwm001.o uart001.o adc001.o timer0_001.o eeprom_001.o 
--output main.elf -Wl,-Map=main.map,--cref -lm
main.o(.text+0x5bc): In function `main':
C:\unzipped\tested_2004/main.c:324: undefined reference to `outp'
main.o(.text+0x5c8):C:\unzipped\tested_2004/main.c:325: undefined 
reference to `outp'
main.o(.text+0x5d4):C:\unzipped\tested_2004/main.c:326: undefined 
reference to `outp'
main.o(.text+0x612):C:\unzipped\tested_2004/main.c:343: undefined 
reference to `outp'
main.o(.text+0x630):C:\unzipped\tested_2004/main.c:351: undefined 
reference to `outp'
main.o(.text+0x6c2):C:\unzipped\tested_2004/main.c:370: more undefined 
references to `outp' follow
main.o(.text+0x6c8): In function `main':
C:\unzipped\tested_2004/main.c:370: undefined reference to `inp'
main.o(.text+0x752):C:\unzipped\tested_2004/main.c:382: undefined 
reference to `outp'
main.o(.text+0x7dc):C:\unzipped\tested_2004/main.c:400: undefined 
reference to `outp'
pwm001.o(.text+0x16): In function `pwm_init':
C:\unzipped\tested_2004/pwm001.c:22: undefined reference to `outp'
pwm001.o(.text+0x28):C:\unzipped\tested_2004/pwm001.c:23: undefined 
reference to `outp'
uart001.o(.text+0x190): In function `uart_puts_p':
C:\unzipped\tested_2004/uart001.c:223: undefined reference to `PRG_RDB'
uart001.o(.text+0x1aa): In function `uart_putsl_p':
C:\unzipped\tested_2004/uart001.c:233: undefined reference to `PRG_RDB'
make.exe: *** [main.elf] Error 1

> Process Exit Code: 2

wenn du die Fehler beseitigtst kann ich es gern nochmahl versuchen.

P.S.: Was soll das Programm eigentlich machen ?

Gruß
Gast #455714
Lesenswert?

Das Programm stammt von der 
Seite:http://www.opend.co.za/hardware/nimh1/nimh1.htm
Das ist ein Akku-Lader.
Leider hat der Gute keine  Hex-Datei angefügt. :-(
Ich selbst verstehe von C absolut nichts und kann daraufhin
nichts über enthaltene Fehler sagen. Mir hat schon jemand
mal das Programm compilieren können und auch das HEX-File gesandt.
Ich habe das aufgespielt und es läuft auch, aber ich bekomme aus
Pin 15 (OC1A) keine Impulse. Mein Atmega ist aber in Ordnung, denn ich 
habe
mittels Bascom-Programm danach getestet, ob der AD-Wandler "lebt" und 
dort
bekomme ich auch ein PWM-Signal heraus. Ich habe auch schon den Schöpfer
der Schaltung angemailt, aber noch keine Antwort von ihm.

Gruß Sigma N.
Gast #455743
Lesenswert?

Danke Euch beiden für Eure Mühe.
@Markus
Das war es auch nicht. Die LED´s blinken, wie sie sollen, aber aus Pin15
(OC1A) bekomme ich nichts heraus. Schade, die Schaltung gefiel mir.
Ich habe in der Not ein kleines Programm geschrieben, um Taster,LED´s
und Pin15 zu testen. Das funktioniert. Da muß ich wohl das Fahrrad noch 
einmal erfinden. :_((

Gruß
Sigma N.
Angehängte Dateien:
Gast #455921
Lesenswert?

@Marcus
Danke für Deinen 2. Versuch, aber das Verhalten ist gleich geblieben. 
:-(
Keine PWM am Anschluß 15.
Auch wenn der Autor "tested Version" angegben hatte, weiß man ja nicht, 
wie sein Test ausgegangen ist. :-)

@Paul
Ja, Du hast Recht, ich habe eine Anleihe bei Dir genommen. Ist doch 
nicht
schlimm, oder?

Gruß
Sigma N.
Gast #456093
Lesenswert?

Nur mal aus Interesse, ist die Formatierung des Quelltextes nur im 
Textfile so extrem oder programmierst du wirklich mit 10000 Leerstellen 
pro Tab? Sowas kenne ich eigentlich nur von Leuten, die ausschließlich 
mit Visual Studio arbeiten.
Gast #456127
Lesenswert?

So, es ist vollbracht! Der Fehler war tatsächlich der Starttaster, 
dessen
Belegung zwischen Programm (Portc.3) und Schaltbild (Portc.2) 
differierte.

ICH habe das Programm nicht erstellt. Wie ich weiter oben schon 
schrieb,
beherrsche ich "C" nicht. Deswegen hat mich die Fehlersuche auch so viel 
Zeit gekostet.

Erfahrung: Benutze nie fremde C-Programme, wenn Du mit dem Quelltext und
den zahlreichen Anhängseln nichts anfangen kannst.

Ich danke allen Helfern und "Compilierern" für ihre Hilfe.

3Kreuze!

Sigma N.
Gast #456128
Lesenswert?

'Nabend

habe auch gerademal 'reingesehen.

Die Funktionalität beschränkt sich, ausser der Kalibiererfunktion, 
lediglich in einem 14Stunden Timer???

Hmmm - also wenn man da schon einen uC verwendet, hätte man doch gleich 
'ne du/dt Abschaltung mit einbauen können.
So hätte man das auch, vom Terminal abgesehen, auch mit einer 
Konstantsromquelle und nem 555er erledigen können, oder wie seht ihr 
das?

Sonst:
schön wenns endlich geht!
Ich hatte schon im Datenblatt nachgelesen, ob die Timer initialisierung 
evtl. falsch ist - stimmte aber alles...
Auf den Taster bin ich nicht gekommen ;-))


Viele Grüße

AxelR.
Gast #456320
Lesenswert?

Ich habe dem Autor den Fehler mitgeteilt. Er wird noch eine Version mit 
7-Segment-Anzeige schreiben.
Ich selbst werde das Ganze mal mit Bascom schreiben. Das ist wesentlich 
übersichtlicher.

Gruß Sigma N.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren