Hallo zusammen, in einem Programm zur Temperaturverarbeitung kommt bei mit die folgende Fehlermeldung: ../lcdadc.c:222: error: declaration for parameter "iitemp" but no such parameter Zur ausgabe auf einem LCD-Display verwende ich die Fleurylib. Das Programm an sich funktioniert, die Fehlermeldung kommt erst seit ich die Funktionen dafür aktiviert habe. Was sagt mir diese Fehlermeldung, bzw. was mache ich falsch? Vielen Dank im Voraus Mein ldcadc.c hab ich mit eingefügt.
1 | void P1() |
2 | char iiTemp[6], siTemp[6]; |
3 | {
|
4 | if (iiTemp>=siTemp)PORTD6==stop; |
5 | else PORTD6==start; |
6 | |
7 | }//end P1 |
Das sieht ziemlich seltsam aus, fast wie uralter C-Code aus Prä-Standard-Zeit, der zudem semantisch nicht korrekt ist. Probier es mal so:
1 | void P1(char iiTemp[6], siTemp[6]) |
2 | {
|
3 | if(iiTemp >= siTemp) |
4 | PORTD6 = stop; |
5 | else
|
6 | PORTD6 = start; |
7 | }
|
Die anderen Funktionen musst du auch noch (analog dazu) korrigieren.
Nachtrag: Lies bitte bei Gelegenheit mal ein Buch über C-Grundlagen. Dir scheint noch einiges zu fehlen, wenn du solchen Code schreibst:
1 | if (Programmschalter==1) P1; //Funktion P1 aufrufen |
Und Warteschleifen schreibt man auch nicht so:
1 | int i=0; /*Pause gegen Flimmern der ADC-Werte*/ |
2 | for(i=0;i<=10000;i++); |
sondern nimmt dazu die fertigen delay-Funktionen aus der avrlibc.
Danke, die Änderungen hab ich soweit mal durchgeführt, der Fehler ist dadurch aber nicht weg. Hab auch mal den Variablen in den Funktionen andere Namen gegeben, was allerdings auch nichts geändert hat...
... dass ich die Programmiererei nicht erfunden hab ist mir bekannt. Die Frage ist dann, warum soll ich es mir mit irgendwelchen delays etc. unnötig komplizierter machen wie es eh schon ist?
Thorsten wrote: > Die > Frage ist dann, warum soll ich es mir mit irgendwelchen delays etc. > unnötig komplizierter machen wie es eh schon ist? Das machst du gerade, und Christoph möchte dich davon abbringen. Was du geschrieben hast, ist effektiv keine ,,Warteschleife'', sondern spätestens mit GCC 4.x und eingeschalteter Optimierung schlicht nichts mehr, da der Compiler feststellen wird, dass die Schleife ja effektiv nichts tut.
>"dass ich die Programmiererei nicht erfunden hab ist mir bekannt" Verlangt niemand, aber ein paar C-Grundlagen fehlen aber wirklich! aber zu dem "Problem": - Korrigier mal die Prototypen, in deren Klammern gehört auch die Liste mit den Typen der Argumente - generell gehört bei ANSI-C die Argumente in die Klammern der Funktionsdeklarationen, nicht darunter - Man kann keine Arrays Vergleichen! (gibt keine Fehlermaldung funktioniert aber nicht so wie du das willst) übergib den Px-Funktionen die int-Variable nicht die (Pointer auf ) char-Arrays achja, vll hilfts in Zukunft: http://www-computerlabor.math.uni-kiel.de/~dknof/Daten/Dokumente/C.pdf besser wäre ein richtiges Buch ;)
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.