PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein erstes Programm will nicht



Lukas.
10.02.2007, 19:57
Hi,
hab nach ewigem nichts tun meinen ASURO fertig und die Anleitung gelesen.
Jetzt wollte ich die Status LED blinken lassen (Abwechselnd Grün und Rot).

So hab ich mir das gedacht:

#include "asuro.h"

int main(void)
{
int i;
Init();
StatusLED(GREEN);
while(1) {
for(i=0, i<=1000, i++) {
sleep(72);
}
StatusLED(RED);
for(i=0, i<=1000, i++) {
sleep(72);
}
StatusLED(GREEN);
}
while(1);
return 0;
}


Und das is der Fehler:


asuro.h:52: error: previous declaration of 'StatusLED' was here
test.c:16: error: conflicting types for 'StatusLED'
asuro.h:52: error: previous declaration of 'StatusLED' was here
test.c:16: warning: data definition has no type or storage class
make: *** [test.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:00


Als erstes würde mich interessiern ob in der Fehlermeldung irgendwo die Zeile vom Fehler steht.
Und natürlich ein Tipp was falsch ist.

Gruß,
Lukas

damaltor
10.02.2007, 20:17
da steht folgendes:

asuro.h:52:error...
das erste ist die datei, das zweite ist die zeilennummer, das letzte ist die fehlerbeschreibung. der fehler liegt also nicht in deinem programmcode sondern in der library (asuro.c und asuro.h). hast du die dateien von der cd kopiert? hast du bei allen dateien den schreibschutz entfernt? (glaub zwar nicht dass das daran liegt, könnte aber immerhin sein) ansonsten solltest du die neue lib hier aus dem forum benutzen.

Lukas.
10.02.2007, 21:02
Hi,
ich bin einfach im FirstTry Verzeichniss und hab die Dateien von der CD.
Schreibschutz war noch nie drauf ^^

Ich hab halt die normale test.c Datei aus der Anleitung umgebastelt...

Mal schaun, vielleicht klappts mit der neuen Lib.
Aber eigentlich sollte das doch gehen oder?

------------------------------------------------------------------------------------

Edit:

Hab jetzt die Asuro Lib Files kopiert aber das geht immer no ned...
und ich hab gemerkt, dass das log beim "make" länger ist als oben:


test.c: In function `main':
test.c:9: warning: left-hand operand of comma expression has no effect
test.c:9: error: syntax error before ')' token
test.c:13: warning: left-hand operand of comma expression has no effect
test.c:13: error: syntax error before ')' token
test.c: At top level:
test.c:16: error: syntax error before numeric constant
test.c:16: warning: type defaults to `int' in declaration of `StatusLED'
test.c:16: warning: function declaration isn't a prototype
test.c:16: error: conflicting types for 'StatusLED'
asuro.h:52: error: previous declaration of 'StatusLED' was here
test.c:16: error: conflicting types for 'StatusLED'
asuro.h:52: error: previous declaration of 'StatusLED' was here
test.c:16: warning: data definition has no type or storage class
make: *** [test.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:00


AH, wirre Code überall, er verfolgt mich...
Ich weiß so gar nicht, was ich machen soll...

------------------------------------------------------------------------------------

Edit 2:

Ich hab bei for (i=o; usw) statt dem ; ein , geschrieben...

Jetzt krieg ich noch folgenden Fehler:

avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
test.o: In function `main':
D:\Eigene Dateien\Asuro\ASURO_src\FirstTry/test.c:10: undefined reference to `sleep'
D:\Eigene Dateien\Asuro\ASURO_src\FirstTry/test.c:14: undefined reference to `sleep'
make: *** [test.elf] Error 1

> Process Exit Code: 2
> Time Taken: 00:01


In der Asuro.h finde ich zB auch nix wo sleep steht...
In der Anleitung steht der Befehl aber genau so drin :-k

damaltor
10.02.2007, 21:23
achsoo ich hab was...
es heisst for(xxx;xxx;xxx) und nicht for(xxx,xxx,xxx)

also semikola anstelle der kommas

raid_ox
10.02.2007, 21:26
sleep schreib man mit großer Anfangsbuchstabe: Sleep(hz);

damaltor
10.02.2007, 21:28
stimmt, das auch noch. die groß-und kleinschreibung ist extrem wichtig, ebi allen befehlen.

Lukas.
10.02.2007, 21:35
Juhu! Es klappt :) Danke euch beiden :)
Hab jetzt auch geflashed, passt alles.

Hehe jetzt wechselt jede Sekunde die Farbe und ich bin stolz wie Oskar *grins*

damaltor
10.02.2007, 21:50
sehr gut... so muss das sein. viel glück weiterhin!