Forum: Compiler & IDEs Probleme mit #include <util/delay.h>


von ** (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem:
Ich benötige für ein kleines C-Programm auf einem Atmega8 die 
delay-Funktionen.
Nach dem Einbinden mit #include <util/delay.h>
kommt allerdings folgender Fehler:


1
 error: invalid storage class for function '_delay_loop_1'
2
 static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
3
                    ^
4
error: invalid storage class for function '_delay_loop_2'
5
 static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));

woher kommt das?

von Klaus (Gast)


Lesenswert?

** schrieb:
> Hallo zusammen,
>
> ich habe ein kleines Problem:
> Ich benötige für ein kleines C-Programm auf einem Atmega8 die

>
> woher kommt das?

[Albern]
Vom kleinen Compiler.
[/Albern]

von g457 (Gast)


Lesenswert?

> woher kommt das?

Vom restlichen Code, den Du uns nicht zeigst.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Du hast irgendwo vor dem #include <util/delay.h> (möglicherweise in
einem anderen Header-File, das inkludiert wird) eine schließende
geschweifte Klammer, ein Semikolon o.ä. vergessen.

von ** (Gast)


Lesenswert?

Ich habe noch keine Funktion aus der Header-Datei verwendet im Code. Ich 
habe sie einfach nur eingebunden....

von Yalu X. (yalu) (Moderator)


Lesenswert?

Was steht vor der Zeile mit dem #include <util/delay.h>? Das ist
garantiert nicht die erste Zeile in deiner .c-Datei.

von Joachim B. (jar)


Lesenswert?

g457 schrieb:
> Vom restlichen Code, den Du uns nicht zeigst.

wurde doch schon gesagt, aber.....

** schrieb:
> Ich habe noch keine Funktion aus der Header-Datei verwendet im Code. Ich
> habe sie einfach nur eingebunden....

Yalu X. schrieb:
> Du hast irgendwo vor

Yalu X. schrieb:
> Was steht vor der Zeile

irgendwie will er wohl nicht alles zeigen.

von Klaus (Gast)


Lesenswert?

Joachim B. schrieb:
> g457 schrieb:
> irgendwie will er wohl nicht alles zeigen.

Muss er ja auch nicht unbedingt. Denn vor dem include muss noch ein 
anderer Fehler sitzen. Der Code würde auch ohne das include nicht 
compilieren.
Das Problem ist, warum er nach diesem schon vorher vorhandenen Fehler 
nicht fragt, noch ein include hinzufügt und dann nach dadurch erst 
hinzugekommenen Fehler fragt.

Naja.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Klaus schrieb:
> Muss er ja auch nicht unbedingt. Denn vor dem include muss noch ein
> anderer Fehler sitzen. Der Code würde auch ohne das include nicht
> compilieren.

Der Fehler könnte auch dadurch zustande gekommen sein, dass er das
include im vorher korrekten Code an der falschen Stelle eingefügt hat,
bspw. so:

Vorher:
1
void f(void) {
2
}

Das kompiliert ohne Fehlermeldung.

Nachher:
1
void f(void) {
2
#include <util/delay.h>
3
}

Das ergibt eine Reihe von "invalid storage class"-Meldungen.

von Klaus (Gast)


Lesenswert?

Yalu X. schrieb:
> Klaus schrieb:
>> Muss er ja auch nicht unbedingt. Denn vor dem include muss noch ein
>> anderer Fehler sitzen. Der Code würde auch ohne das include nicht
>> compilieren.
>
> Der Fehler könnte auch dadurch zustande gekommen sein, dass er das
> include im vorher korrekten Code an der falschen Stelle eingefügt hat,
> bspw. so:

Das ist auch möglich. Richtig. Ist mir so ähnlich dann auch durch den 
Kopf gegangen.

von ** (Gast)


Lesenswert?

Hi zusammen,
Ich hab den Fehler gefunden.
Yalu, es war genau wie du vermutet hast. Da hätte ich auch selbst drauf 
kommen können. Dankeschö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.