Forum: Compiler & IDEs Fehlermeldungen von AVR Studio 5 - brauche Hilfe


von Sören T. (stimmy)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

ich habe seit zwei Jahren kein AVR Projekt mehr gehabt.
Das jetzige ist eine Steuerung für LED via Fernbedienung.
Soweit auch kein Problem.

Jetzt habe ich aber meine verschiedenen Dateien in den ich den Code habe 
in ein Projekt zusammengeführt und es kommen etliche Fehlermeldungen.

Ich muss zugeben das ich bis jetzt nicht all zu viel mit GCC zu tun 
hatte.
Habe die Headerfiles mit einem Tutorial erstellt.

Und ich habe ganz sicher die ganzen Dinge declariert.


Ich habe das ganze Projekt als Zip angehangen.
Evt. findet ihr den Fehler.

Fehlermeldungen:
1
Error  1  macro names must be identifiers  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.h  1  9  Led_Treiber_Kim
2
Error  3  'Digit_DDR' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  7  2  Led_Treiber_Kim
3
Error  4  each undeclared identifier is reported only once for each function it appears in  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  7  2  Led_Treiber_Kim
4
Error  5  'digit1' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  7  22  Led_Treiber_Kim
5
Error  6  'digit2' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  7  36  Led_Treiber_Kim
6
Error  7  'digit3' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  7  50  Led_Treiber_Kim
7
Error  8  'digit4' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  7  64  Led_Treiber_Kim
8
Error  9  'Digit_Schiebe_DDR' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  8  2  Led_Treiber_Kim
9
Error  10  'clock_digit' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  8  30  Led_Treiber_Kim
10
Error  11  'data_digit' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  8  49  Led_Treiber_Kim
11
Error  12  'strobe_digit' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  8  67  Led_Treiber_Kim
12
Error  13  'Digit_Port' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  23  12  Led_Treiber_Kim
13
Error  14  'digit1' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  23  32  Led_Treiber_Kim
14
Error  15  'digit2' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  26  32  Led_Treiber_Kim
15
Error  16  'digit3' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  29  32  Led_Treiber_Kim
16
Error  17  'digit4' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  32  32  Led_Treiber_Kim
17
Error  18  'Digit_Schiebe_Port' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  38  5  Led_Treiber_Kim
18
Error  19  'data_digit' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  38  33  Led_Treiber_Kim
19
Error  20  'clock_digit' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  46  33  Led_Treiber_Kim
20
Error  21  'digit_delay' undeclared (first use in this function)  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  50  13  Led_Treiber_Kim

von Karl H. (kbuchegg)


Lesenswert?

Na dann zeig mal 4-Digit-Schiebe.h
Denn davon handelt die erste Fehlermeldung


PS: Ich würde das Projekt erst mal auf ein anderes Verzeichnis schieben.
Das hat doch keinen Sinn, wenn dir der Compielr in jeder Fehlermeldung 
die Zeile mit einer elends langen Pfadanagabe vollmüllt.

von Karl H. (kbuchegg)


Lesenswert?

Haben wirs schon
1
#ifndef 4-DIGIT-SCHIEBE_H_
2
#define 4-DIGIT-SCHIEBE_H_
3
...

Mööp.

Wie der Compiler sagt: Makro Names must be identifiers.
D.h. da gelten die selben Regeln wie für Variablennamen oder 
Funktionsnamen: sie können nicht mit einer Ziffer anfangen.
1
#ifndef FOUR_DIGIT_SCHIEBE_H_
2
#define FOUR_DIGIT_SCHIEBE_H_
3
...

wäre ok.


Ändern, neu compilieren und ein ganzer Haufen Folgefehler wird gleich 
mit verschwinden.

Man fängt immer beim ersten Fehler an. Egal wieviele dann noch auf der 
Liste sind. Wenns noch besonders viele Fehler auf der Liste sind, dann 
sind viele davon einfach nur Folgefehler vom ersten. Daher: nicht 
entmutigen lassen, einfach den ersten korrigieren und nochmal 
compilieren. Und dann wieder den ersten Fehler bearbeiten.

von Tom K. (ez81)


Lesenswert?

1
#ifndef 4-DIGIT-SCHIEBE_H_
2
#define 4-DIGIT-SCHIEBE_H_
"Preprocessing tokens fall into five broad classes: identifiers, 
preprocessing numbers, string literals, punctuators, and other. An 
identifier is the same as an identifier in C: any sequence of letters, 
digits, or underscores, which begins with a letter or underscore."

EDIT: Ups, zu langsam.

von Sören T. (stimmy)


Lesenswert?

Vielen Dank!!!
So ein Simpler Fehler ;)

von Sören T. (stimmy)


Lesenswert?

Dafür sind neue Fehler da.
In den Delay funktionenn von AVR Studio.
1
Warning  1  type defaults to 'int' in declaration of 'digit_init'  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.h  24  8  Led_Treiber_Kim
2
Error  2  storage class specified for parameter '__fuse_t'  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/fuse.h  252  3  Led_Treiber_Kim
3
Error  3  storage class specified for parameter '_delay_loop_1'  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h  40  20  Led_Treiber_Kim
4
Error  4  storage class specified for parameter '_delay_loop_2'  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h  41  20  Led_Treiber_Kim
5
Error  5  expected '=', ',', ';', 'asm' or '__attribute__' before '{' token  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h  82  1  Led_Treiber_Kim
6
Error  6  expected '=', ',', ';', 'asm' or '__attribute__' before '{' token  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h  104  1  Led_Treiber_Kim
7
Error  7  storage class specified for parameter '_delay_us'  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h  83  20  Led_Treiber_Kim
8
Error  8  storage class specified for parameter '_delay_ms'  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h  84  20  Led_Treiber_Kim
9
Warning  9  #warning "F_CPU not defined for <util/delay.h>"  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h  89  3  Led_Treiber_Kim
10
Error  10  expected '=', ',', ';', 'asm' or '__attribute__' before '{' token  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h  133  1  Led_Treiber_Kim
11
Error  11  expected '=', ',', ';', 'asm' or '__attribute__' before '{' token  c:\program files (x86)\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h  210  1  Led_Treiber_Kim
12
Error  12  expected '=', ',', ';', 'asm' or '__attribute__' before '{' token  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  6  1  Led_Treiber_Kim
13
Error  13  expected '=', ',', ';', 'asm' or '__attribute__' before '{' token  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  16  1  Led_Treiber_Kim
14
Error  14  old-style parameter declarations in prototyped function definition  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.h  25  8  Led_Treiber_Kim
15
Error  15  expected '{' at end of input  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  59  1  Led_Treiber_Kim
16
Warning  16  control reaches end of non-void function  C:\Users\Timm\Documents\AVRStudio\Led_Treiber_Kim\Led_Treiber_Kim\4-Digit-Schiebe.c  59  1  Led_Treiber_Kim

von Karl H. (kbuchegg)


Lesenswert?

Was wird das jetzt?
Wer fixt mir alle meine Fehler?


erste Fehlermeldung:

type defaults to 'int' in declaration of 'digit_init'


zugehöriger Code in 4-Digit-Schiebe.h
1
extern digit_init(void);

Frage: Wovon spricht der Compiler hier?

(Was hat jede Funktionsdeklaration (und auch Definition)? Wie siehst sie 
aus?
Sie sieht immer so aus
1
Datentyp_des_Returnwertes Funktionsname ( Argumentliste ) ;
Wo ist bei dir der Datentyp des Returnwertes?



Ein wenig was musst du selber auch dazu tun! Es ist ja schliesslich dein 
Projekt. Am Anfang klang das noch so, als ob du die Teile selbst 
geschrieben hast. Zumindest bei mir kommen da so die ersten Zweifel auf.

von Karl H. (kbuchegg)


Lesenswert?

Der ist auch noch banal

> #warning "F_CPU not defined for <util/delay.h>

von Karl H. (kbuchegg)


Lesenswert?

4-Digit-Schiebe.c

1
#include "4-Digit-Schiebe.h"
2
#include <avr/io.h>
3
#include <util/delay.h>

Reihenfolge!

Immer zuerst die System Header und dann deine eigenen.
Deine eigenen werden Dinge aus den System-Header benutzen. Dann müssen 
die aber schon vorher mal inkludiert worden sein.
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
#include "4-Digit-Schiebe.h"

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.