mikrocontroller.net

Forum: Projekte & Code Strings vergleichen=> C-Frage


Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe folgendes programmiert. Im Visual Studio klappt es so wie ich
mir das vorstelle. Aber im CodeVision kommt immer Folgender Fehler:
function parameter #1 incompatible with its declaration. ??

char Zeichen[20];

if ( (strcmp("ABC",Zeichen)) == 0 )

Hat jemand eine Idee?

Danke,
Timo

Autor: marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

initialisierst du "Zeichen" in deinem Prog?

______________________________
int main(void)
{
 char s[6] = "hallo";

  if (strcmp(s,"hallo")==0)
  {
    printf("Hallo");
  }
 return 0;
}

Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also ich fülle Zeichen[20] mit Zeichen aus dem UART.

interrupt [UART_RXC] void uart_rx_isr(void)
{
  Zeichen[i] = UDR;
  i++;

  if ( UDR == 0x0A )
  {
  i=i-2;
  Zeichen[i]=0x00;
  NeueDaten = 1;
  i=0;
  }
}

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehme an, dass vom UART kein Stringabschluss als letztes Zichen
kommt, dies wird aber von strcmp benötigt. Deshalb müsstest Du hinter
dem letzten zeichen vom UART noch ei \0 anhängen.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ich vermute eher das der Compiler "ABC" als Konstante im ROM ablegt.
Und das passt nicht zur Deklaration von strcmp() aus der Bibliothek.

Matthias

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Versuch es mal so. Codevision dürfte dann nicht mehr meckern.

char abc[]="ABC";
char Zeichen[20];
if ( (strcmp("abc",Zeichen)) == 0 )

Ob die Zeichenkette als gleich erkannt wird, wenn über die UART ABC
empfangen wird weiß ich nicht. Wie Jürgen schon schreibt,ist so ein
Problem mit der /0

Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soo,

nun gehts. Er will den String nicht direkt gepostet haben. Wenn ich ein
Char Array mache und das mit z.B. ABC initalisiere klappt es.

char cText[20]="ABC"

Danke an alle.

Timo

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.