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
hi, initialisierst du "Zeichen" in deinem Prog? ______________________________ int main(void) { char s[6] = "hallo"; if (strcmp(s,"hallo")==0) { printf("Hallo"); } return 0; }
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; } }
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.
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
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
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
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.