mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Programm compilieren


Autor: Sigma N. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Sigma N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiere es nochmal mit der alten Verson 20040404. Meld mich gleich 
nochmahl.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry , kann ich nicht.

Autor: Der Fönig (zotos)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Code geändert.

Also auf eigene Gefahr!

Autor: Sigma N. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Der Fönig (zotos)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Versuch...

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sigma N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sigma N. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein

Autor: Aufreger deluxe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sigma N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Der Fönig (zotos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön das es jetzt geht.

Gruß
Marcus

Autor: Sigma N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.