mikrocontroller.net

Forum: Compiler & IDEs Fehlermeldungen bei Funktionen


Autor: Thorsten (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
  void P1()
  char iiTemp[6], siTemp[6];
    {
      if (iiTemp>=siTemp)PORTD6==stop;        
      else PORTD6==start;
    
    }//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:
void P1(char iiTemp[6], siTemp[6])
{
  if(iiTemp >= siTemp)
    PORTD6 = stop;        
  else
    PORTD6 = start;
}
Die anderen Funktionen musst du auch noch (analog dazu) korrigieren.

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Lies bitte bei Gelegenheit mal ein Buch über C-Grundlagen. Dir 
scheint noch einiges zu fehlen, wenn du solchen Code schreibst:
if (Programmschalter==1) P1; //Funktion P1 aufrufen

Und Warteschleifen schreibt man auch nicht so:
int i=0;          /*Pause gegen Flimmern der ADC-Werte*/
for(i=0;i<=10000;i++);
sondern nimmt dazu die fertigen delay-Funktionen aus der avrlibc.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... 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?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>"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/D... 
besser wäre ein richtiges Buch ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.