Forum: Mikrocontroller und Digitale Elektronik AVR-Problem, für mich unlösbarer Error.


von Markus (Gast)


Angehängte Dateien:

Lesenswert?

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...

von Michael H. (michael_h45)


Lesenswert?

nein, die fehler liegen nicht im makefile, sondern in verschiedenen 
c-dateien.
zip das ganze projekt und lads hoch.

von Ralf (Gast)


Lesenswert?

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)

von Ralf (Gast)


Lesenswert?

Scheiße:
'#ifndef' natürlich!!

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

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...

von Andreas K. (derandi)


Lesenswert?

Mach erst mal die 22 Warnings weg.

von holger (Gast)


Lesenswert?

#include "dcf.c"

C Dateien sollte man nicht includen.

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Wie Andreas es sagte. so tat ich es ...die Warnings sind weg!

kleiner Teilerfolg hoffe ich...

und wieder versuch ichs!

von Markus (Gast)


Lesenswert?

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

von Michael H. (michael_h45)


Lesenswert?

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.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

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...

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

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...

von Knut (Gast)


Lesenswert?

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

von Markus (Gast)


Lesenswert?

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