Hallo, ich bin das erste mal in diesem Forum unterwegs, also bitte um Nachsicht. Ich habe auch schon gesucht nach ähnlichen Problemen, aber irgendwie raff ich es nicht. Nun ja ich bekomme immer eine Fehlermeldung, die es mir unmöglich macht mein Projekt zu ende zu bringen. Win-Avr hab ich auch schon neuinstalliert, ohne Erfolg. Wäre schön wenn jemand Zeit hat sich mein Problem mal anzuschauen, das makefile hab ich auch angehängt, da es vielmals geholfen hat, wie ich sah. Vielen Dank rm -rf i2c.o i2creg.o lcd.o dcfpanel1.o encoder.o timer.o dcf.o menue.o uart2.o spi.o adc.o dcfpanel1.elf dep/* dcfpanel1.hex dcfpanel1.eep dcfpanel1.lss dcfpanel1.map Build succeeded with 0 Warnings... avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT i2c.o -MF dep/i2c.o.d -c ../i2c.c avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT i2creg.o -MF dep/i2creg.o.d -c ../i2creg.c avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT lcd.o -MF dep/lcd.o.d -c ../lcd.c avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT dcfpanel1.o -MF dep/dcfpanel1.o.d -c ../dcfpanel1.c ../dcfpanel1.c:127: warning: return type of 'main' is not 'int' ../dcfpanel1.c: In function 'main': ../dcfpanel1.c:133: warning: implicit declaration of function 'InitTimer' ../dcfpanel1.c:170: warning: implicit declaration of function 'menuejob' ../dcfpanel1.c:172: warning: implicit declaration of function 'anzjob' ../dcfpanel1.c:163: warning: unused variable 'pos' ../dcfpanel1.c:153: warning: unused variable 's' avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT encoder.o -MF dep/encoder.o.d -c ../encoder.c avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT timer.o -MF dep/timer.o.d -c ../timer.c avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT dcf.o -MF dep/dcf.o.d -c ../dcf.c avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT menue.o -MF dep/menue.o.d -c ../menue.c In file included from ../menue.c:6: c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for <util/delay.h>" ../menue.c: In function 'menuejob': ../menue.c:28: warning: unused variable 's' ../menue.c: In function 'anzjob': ../menue.c:71: warning: implicit declaration of function 'GetEncoderPos' ../menue.c:84: warning: implicit declaration of function 'getvoltage' ../menue.c:87: warning: implicit declaration of function 'setvoltage' ../menue.c:91: warning: implicit declaration of function 'getcurrent' ../menue.c:94: warning: implicit declaration of function 'setcurrent' ../menue.c:99: warning: implicit declaration of function 'meascurrent' ../menue.c:100: warning: implicit declaration of function 'measvoltage' ../menue.c:112: warning: implicit declaration of function 'meastemperatur' ../menue.c:122: warning: implicit declaration of function 'release' ../menue.c:127: warning: implicit declaration of function 'protect' avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT uart2.o -MF dep/uart2.o.d -c ../uart2.c ../uart2.c:30:33: warning: "/*" within comment ../uart2.c:32:2: warning: "/*" within comment ../uart2.c:50:20: warning: "/*" within comment avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT spi.o -MF dep/spi.o.d -c ../spi.c In file included from ../spi.c:2: c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for <util/delay.h>" avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT adc.o -MF dep/adc.o.d -c ../adc.c avr-gcc -mmcu=atmega32 -Wl,-Map=dcfpanel1.map i2c.o i2creg.o lcd.o dcfpanel1.o encoder.o timer.o dcf.o menue.o uart2.o spi.o adc.o -o dcfpanel1.elf dcf.o: In function `setvoltage': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:43: multiple definition of `setvoltage' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:43: first defined here dcf.o: In function `setcurrent': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:45: multiple definition of `setcurrent' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:45: first defined here dcf.o: In function `getvoltage': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:51: multiple definition of `getvoltage' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:51: first defined here dcf.o: In function `getcurrent': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:54: multiple definition of `getcurrent' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:54: first defined here dcf.o: In function `protect': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:124: multiple definition of `protect' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:124: first defined here dcf.o: In function `setvoltage': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:43: multiple definition of `protection' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:43: first defined here dcf.o: In function `release': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:133: multiple definition of `release' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:133: first defined here dcf.o: In function `protec': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:140: multiple definition of `protec' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:140: first defined here dcf.o: In function `gettmpspg': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:108: multiple definition of `gettmpspg' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:108: first defined here dcf.o: In function `meastemperatur': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:115: multiple definition of `meastemperatur' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:115: first defined here dcf.o: In function `meascurrent': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:93: multiple definition of `meascurrent' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:93: first defined here dcf.o: In function `measvoltage': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:77: multiple definition of `measvoltage' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:77: first defined here dcf.o: In function `sendref': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:60: multiple definition of `sendref' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:60: first defined here dcf.o: In function `dcgjob': C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:142: multiple definition of `dcgjob' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:142: first defined here dcf.o: In function `setvoltage': :\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:43: multiple definition of `refvoltage' dcfpanel1.o:C:\Dokumente und Einstellungen\Administrator\Desktop\Kopie von dcfpanel1\default/../dcf.c:43: first defined here dcf.o:(.data+0x0): multiple definition of `A' dcfpanel1.o:(.data+0x9): first defined here dcf.o:(.data+0x4): multiple definition of `B' dcfpanel1.o:(.data+0xd): first defined here dcf.o:(.data+0x8): multiple definition of `C' dcfpanel1.o:(.data+0x11): first defined here dcf.o:(.data+0xc): multiple definition of `D' dcfpanel1.o:(.data+0x15): first defined here dcf.o:(.data+0x10): multiple definition of `Ref' dcfpanel1.o:(.data+0x19): first defined here make: *** [dcfpanel1.elf] Error 1 Build failed with 1 errors and 22 warnings...
nein, die fehler liegen nicht im makefile, sondern in verschiedenen c-dateien. zip das ganze projekt und lads hoch.
Markus schrieb: > ../menue.c:71: warning: implicit declaration of function 'GetEncoderPos' Die Funktion 'GetEncoderPos' ist nicht deklariert -> Header nicht eingebunden, falsche Schreibweise (groß/klein), ... Markus schrieb: > dcf.o:(.data+0x0): multiple definition of `A' wie die Meldung schon sagt ... -> z.B. *.h-Datei in verschiedenen Modulen abgerufen, ohne 'Sperre'
1 | #ifdef _DATEI_H_
|
2 | #define _DATEI_H_
|
3 | |
4 | // Deklarationen
|
5 | |
6 | #endif // _DATEI_H_
|
(sagt die Glaskugel)
Erstmal Danke für die schnellen Responses, ich hab auch noch mal angefangen selber rumzuprobieren.Ein paar Warnings hab ich auch schon weg. Nur halt der Error is noch da! Deshalb wie angemerkt poste ich nun das Projekt gepackter Art. Vielen Dank ...irgendwie hab ich da wohl den Überblick verloren...
Wie Andreas es sagte. so tat ich es ...die Warnings sind weg! kleiner Teilerfolg hoffe ich... und wieder versuch ichs!
holger schrieb: > #include "dcf.c" > > C Dateien sollte man nicht includen. ...ok, dann bau ich mir eine dcf.h zusätzlich und include diese... ich versuch es mal
main.c: . nicht
1 | void main() |
sondern
1 | int main(void) |
. timer.h wieder mitinkludieren . man includiert keine .c dateien! nur die prototypen der funktionen aus einer .c datei, die in einer .h-datei stehen, werden inkludiert. das führt zu vielen warnings. menue.h, dcf.h: datei existiert nicht. daher kommen die meisten fehler. die musst du nach dem vorbild der anderen .h-dateien erstellen und die prototypen der funktionen erstellen, die die zugehörige .c-datei bereitstellt. einfach mal in die anderen header-dateien reinschaun, was da so passiert. menue.c: . das ganze decoder-geraffel ist unbekannt. es fehlt also die include. anzjob.c . das selbe wie bei menue.c was die definition von setvoltage usw in dcf.c verloren? generell: gewöhn dir DRINGEND sinnvolle einrückung und einheitlichen textsatz an. "dein" code ist stellenweise sehr schwer lesbar. Ich hab die Fehler bei mir mal korrigiert und krieg ein Build mit 7 Warnings und 0 Errors. Die Warnings sind alle "unused variable"s. Wenn du Eigeninitiative und Willen zum Verständnis bei den oben angesprochenen Punkten zeigst, lad ichs gern hoch.
gefunden in menue.c: if (key & BUTTON_UP) { mod++; submod=0; char d[9]={'m','o','d',':',((mod/100)+48),((mod-((mod/100)*100))/10)+48,(mod% 10)+48,32}; So ein unleserliches Zeug ist ja .... außergewöhnlich...
Hallo, so hier ist wieder Euer Neanderthaler des C-Programmierens. @Michael....ich hab nun die includes gesetzt und auich die *.h Dateien geschrieben und geincluded. Trotzdem erhalte ich noch einen Error und 1 warning.woran das nun liegt. Ich weiss es nicht. Die Einrückungen muss ich noch machen, alle hab ich noch nicht geschafft. Wenn du Deinen Code mal Posten könntest wäre ich dir sehr dankbar. Ich hänge meinen auch noch mal ran...
Ich denke nicht das du ein Neandertaler in C bist, ich denke dir fehlt einfach etwas Übersicht und Know How wie man mehrer Sourcefiles handeln kann. Schau dich hier mal um... Knut
...also letztendlich hab ich das Ding noch hingekriegt, es lag letztendlich an der math.h die nicht richtig gelinkt wurde. Natürlich erst nachdem ich Eure tips befolgt habe... Was nun nicht läuft, liegt zwischen meinen Ohren, aber dazu werd ich mir mal den programmablauf aufmalen, wie man es gelernt hat mit nem PAP. Also vielen Dank an Euch alle vorerst!
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.