Hallo, ich möchte eine SPI-Kommunikation zwischen dem ATMEGA 88 und einem MAXIM-Baustein (MAX1204 ADC) herstellen, doch ich habe immer noch 3 Fehler und 3 Warnungen in meinem Programm und ich finde ihn einfach nicht. Hier sind die Fehler und Warnungen: Build started 14.12.2010 at 23:12:55 avr-gcc.exe -mmcu=atmega88 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT SPI_Vokabeln.o -MF dep/SPI_Vokabeln.o.d -c ../SPI_Vokabeln.c ../SPI_Vokabeln.c: In function 'main': ../SPI_Vokabeln.c:100: warning: implicit declaration of function 'displayMain' ../SPI_Vokabeln.c: In function 'getAnalogData': ../SPI_Vokabeln.c:139: warning: implicit declaration of function 'SPIConversation' ../SPI_Vokabeln.c:139: error: expected ')' before ';' token ../SPI_Vokabeln.c: At top level: ../SPI_Vokabeln.c:149: error: conflicting types for 'SPIConversation' ../SPI_Vokabeln.c:150: note: an argument type that has a default promotion can't match an empty parameter name list declaration ../SPI_Vokabeln.c:139: error: previous implicit declaration of 'SPIConversation' was here ../SPI_Vokabeln.c: In function 'SPIConversation': ../SPI_Vokabeln.c:214: warning: no return statement in function returning non-void make: *** [SPI_Vokabeln.o] Error 1 Build failed with 3 errors and 3 warnings... Ich habe euch mal den Quellcode als Anhang bereitgestellt. Wäre echt gut, wenn ihr eine Lösung findet. Danke schon mal im Voraus. Gruß Micha
Die Funktion displayMain ist nirgendwo definiert und die Funktion SPIConversation sollte noch oben in deinen "Prototypen" stehen. Und diese Funktion sollte einen Rückgabewert haben wenn du die Funktion als int initialisierst. Sonst nimmste halt ne void. Das sollte schon mal ein paar Fehler und Warnung beseitigen...
Okay danke. Aber ich habe noch diesen fehler: ../SPI_Vokabeln.c:140: error: expected ')' before ';' token keine Ahnung was der will!
Diesen Fehler bekomm ich meistens wenn ich irgendwo im Code nen ; vergessen oder zuviel hab. Ist aber immer irgendwo anders als der Compiler behauptet...
Klar. Was macht denn der Präprozessor daraus:
1 | #define IPANEL 0b10001111; // Anweisungsbyte um Strom am Panel zu messen
|
2 | :
|
3 | stromPanel = SPIConversation(IPANEL); |
Das hier:
1 | stromPanel = SPIConversation(0b10001111;); |
Und jetzt ist Klar, dass der Compiler, der ja erst nach dem Präprozessor dran ist, den Fehler (der schon viel früher passiert ist) in dieser Zeile anmotzt.
okay danke. habe den fehler schon heute morgen gefunden :-). jetzt geht alles.
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.