Hallo,
ich suche schon seit mehreren Tagen eine Lösung finde aber keine.
Vielleicht kann mir hier jemand helfen.
Ich arbeite unter Ubuntu Linux 11.04 und Eclipse Galileo. Wenn ich die
angehängten Datei laufen lassen funktioniert alles wunderbar (mit bash
./gogo.bat).
demo.c kompiliert ohne Probleme und wird geflasht.
Mit Eclipse hingegen bekomme ich immer bei folgender Datei (main.c)
immer einer Fehler:
main.c (Eclipse):
#include <avr/io.h>
#include <util/delay.h>
int main()
{
DDRB = 0b011000;
while (1) {
PORTB = 0b011000;
delay_ms(500);
PORTB = 0b000000;
_delay_ms(500);
}
return 0;
}
Fehler:
**** Erstellung of configuration Release for project BlinkLED ****
make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char
-funsigned-bitfields -mmcu=attiny13 -DF_CPU=1200000UL -MMD -MP
-MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
../main.c: In Funktion »main«:
../main.c:16: Warnung: Implizite Deklaration der Funktion »delay_ms«
Finished building: ../main.c
Building target: BlinkLED.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,BlinkLED.map -mmcu=attiny13 -o"BlinkLED.elf" ./main.o
./main.o: In function `main':
main.c:(.text+0x16): undefined reference to `delay_ms'
make: *** [BlinkLED.elf] Fehler 1
Ich gehe davon aus das der Compiler (avr-gcc) nicht weiß wo die includes
sind. Was mich irgendwie wundert, denn wenn ichs über die Konsole
kompiliern lassen funktioniert es ja.
Ich habe versucht das auch in Eclipse einzubinden (die Files liegen
unter /usr/lib/avr/include) aber hatte damit bisher keinen Erfolg, weil
ich auch nicht genau weiß an welche Stelle.
Weiß jemand wie ich hier weiterkommen kann?
AVR 08 schrieb im Beitrag #2190130: > Ich gehe davon aus das der Compiler (avr-gcc) nicht weiß wo die includes > sind. Nö. In disesm Fall gäbe es die Fehlermeldung: >../main.c:1:20: error: util/delay.h: No such file or directory Wenn du aber nochmals ganz genau deinen Quellcode und die Fehlermeldung anschaust, sollte dir das Problem auffallen ;) >Wenn ich die >angehängten Datei laufen lassen funktioniert alles wunderbar (mit bash >./gogo.bat). Wenn du damit sagen willst, daß das Programm fehlerfrei compiliert und linkt, dann glaube ich dir das nicht. Oliver
Wo ist der Unterschied zwischen Zeile 9 ...
1 | delay_ms(500); |
und Zeile 11 ...
1 | _delay_ms(500); |
? Was da stehen muss, kann man in <util/delay.h> nachsehen (und/oder in der Dokumentation).
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.