Forum: Compiler & IDEs delay.h fehler beim compilieren


von mark (Gast)


Lesenswert?

hallo zusammen!

habe gerade eben die delay.h von WinAVR in mein projekt eingefügt und 
bekomme nun folgende fehlermeldungen:

In file included from 
c:/programme/winavr/lib/gcc/../../avr/include/util/delay.h:39,

c:/programme/winavr/lib/gcc/../../avr/include/util/delay_basic.h:65: 
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'

c:/programme/winavr/lib/gcc/../../avr/include/util/delay_basic.h:66: 
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
In file included from ../files/timer.c:32:

c:/programme/winavr/lib/gcc/../../avr/include/util/delay.h:79: error: 
expected '=', ',', ';', 'asm' or '__attribute__' before 'void'

c:/programme/winavr/lib/gcc/../../avr/include/util/delay.h:80: error: 
expected '=', ',', ';', 'asm' or '__attribute__' before 'void'


woran kann das liegen?
habe nichts an der delay.h oder delay_basic.h verändert!
verwende AVRStudio4 mit WinAVR.

danke für euere antworten!

gruß
mark

von Εrnst B. (ernst)


Lesenswert?

> In file included from ../files/timer.c:32:

Zeig mal, was in deinem "timer.c" File in den ersten 31 Zeilen steht.
Hast du da evtl #defines drinnen, die mit den delay-headern kollidieren?

von mark (Gast)


Lesenswert?

danke für deine antwort.
in den ersten 28 zeilen steht nur der kopf mit angaben über die 
funktion.
dann steht folgendes:

Zeile 28 #include <avr/io.h>
Zeile 29 #include <stdint.h>
          #include <stdbool.h>
         #include <avr/interrupt.h>
Zeile 32 #include <util/delay.h>

von Hc Z. (mizch)


Lesenswert?

Hast Du das Wort 'inline' im eigenen Programm irgendwo verwendet?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Poste mal alles.  Irgendwas ist daran schräg.

von mark (Gast)


Lesenswert?

es scheint an meinem makefile zu liegen. habe ein eigenes "geschrieben" 
bzw. aus anderen zusammengestellt.
wenn ich das "normale" vorgegebene makefile nehme kommt kein fehler...

kann das daran liegen, dass in delay.h inline assembler verwendet wird?
muß mann das dann im makefile mit angeben?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nein, du hast irgendwas verbogen.  Poste doch mal die Compiler-
Kommandozeile, die das make mit deinem Makefile aufruft.

von mark (Gast)


Lesenswert?

Hallo Jörg!

Danke für Deine Antwort!

Wo genau finde ich die Compiler - Kommandozeile die Du benötigst?

Gruß
Mark

von Hc Z. (mizch)


Lesenswert?

Sie steht oberhalb der Fehlermeldungen, die Du als erstes gepostet hast.

von mark (Gast)


Lesenswert?

Ok, dann hier mal alles was ausgegeben wird.

 using D:/Programme/splint/splint-3.1.1/bin/splint
 using ../etc/grep.sh
 using C:/Programme/doxygen/bin/doxygen

../files/timer.c ...
avr-gcc -c -mmcu=atmega88 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=14745600UL 
-Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD 
-MP -MT main.o -MF .release/main.d -Wa,-adhlns=.release/main.lst -W 
-Wundef -Wshadow -Wbad-function-cast -Wcast
-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations 
-Wredundant-decls -Wnested-externs -Winline -Wtrigraphs -Wno-main -ansi 
-DBIN_SIAS_ACTIVE -D__BITFIELD_UNSIGNED__  ../files/main.c -o 
.release/main.o

und dann die fehlermeldung wie oben...

von mark (Gast)


Lesenswert?

ach, nen fehler ist dabei unten muß es statt main.c -o natürlich timer.c 
-o lauten. habe ich falsch kopiert!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sieht unverdächtig aus, bis auf -D__BITFIELD_UNSIGNED__.  Damit
definierst du einen Makro, der im Namensraum von Compiler und
Systembibliothek liegt, sowas ist dir als Anwender nur gestattet,
wenn dich die Dokumentation von Compiler oder Bibliothek dazu
in irgendeiner Weise auffordert, und da bin ich mir für AVR-GCC
und avr-libc ziemlich sicher, dass sie das nicht tut.

Ist allerdings sehr unwahrscheinlich, dass das dein Problem ist.
Da bleibt nur noch, dass du uns dein komplettes Projektverzeichnis
(als .zip oder .tar.gz-Datei) zur Einsichtnahme überlässt.  Aus dem
von dir bislang geposteten ist der Fehler nicht erklärbar.

von mark (Gast)


Lesenswert?

danke für deine hilfe!

werde einfach das standard makefile nutzen und mit meinem ein wenig 
"spielen". irgendwann werde ich schon auf den fehler kommmen...

danke nochmal!

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.