Forum: Mikrocontroller und Digitale Elektronik C-Programm compilieren


von Sigma N. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Kann mir bitte jemand die beigefügten Dateien in ein Hex-File umwandeln?
Ich abe keinen Compiler dafür hier und kann mittels Modem auch keinen
laden, da der 23MB groß ist.

Danke im Voraus

Sigma N.

von Micha (Gast)


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ß

von Sigma N. (Gast)


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.

von Micha (Gast)


Lesenswert?

Probiere es nochmal mit der alten Verson 20040404. Meld mich gleich 
nochmahl.

von Micha (Gast)


Lesenswert?

sorry , kann ich nicht.

von Der F. (zotos)


Angehängte Dateien:

Lesenswert?

Ich habe den Code geändert.

Also auf eigene Gefahr!

von Sigma N. (Gast)


Angehängte Dateien:

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.

von Der F. (zotos)


Angehängte Dateien:

Lesenswert?

Noch ein Versuch...

von Paul Baumann (Gast)


Lesenswert?

@sigma n.
Dein Testprogramm kommt mir so bekannt vor....?! Hast Du das 
Akku-Programm
jetzt laufen? Wenn nicht, wird es einfacher sein, das Ganze noch einmal 
neu
zu schreiben.

MfG Paul

von Sigma N. (Gast)


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.

von Sigma N. (Gast)


Angehängte Dateien:

Lesenswert?

Ich glaube, ich habe den Fehler gefunden. Im Schaltbild hatte er den 
Starttaster auf PC2 gelegt, im Programm scheint er auf PC3 zu liegen.
Kann mal ein C-Kundiger in den Quelltext gucken, ob das so stimmt?

Gruß Sigma N.

von ... (Gast)


Lesenswert?

nein

von Aufreger deluxe (Gast)


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.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

in diesem C-File sind Tabs drin. Du mußt deinen Editor schon passend 
einstellen. Ja, auch den Editor von VS kann man so einstellen.

Matthias

von Sigma N. (Gast)


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.

von Axel R. (Gast)


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.

von Der F. (zotos)


Lesenswert?

Schön das es jetzt geht.

Gruß
Marcus

von Sigma N. (Gast)


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.

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.