Ahoi,
folgendes: ich möchte einen String über die UART ausgeben.
Die Funktion sieht wie folgt aus:
unsigned int uart_puts(char *string) {
for (string = 0; ;string++) {
if(*string != 0) uart_putc(*string);
else break;
}
return (0);
}
Kann mir kurz jemand sagen, wo der Fehler sein könnte, momentan stehe
ich diesbezüglich etwas auf dem Schlauch. Die verwendete uart_putc
funktioniert einwandfrei.
Danke, Alex
Gast
#816991
Du solltest string nicht auf 0 setzen:
1 | |
Alles in allem etwas quer, aber sollte passen.
Alexander H. wrote: > Ahoi, > > folgendes: ich möchte einen String über die UART ausgeben. > Die Funktion sieht wie folgt aus: > > unsigned int uart_puts(char *string) { > > for (string = 0; ;string++) { Das wird wohl nichts werden, wenn du hier den Pointer 'string' auf 0 setzt. Dadurch hast du dir gerade die Adresse die dich zu den Zeichen des Strings bringt zerstört.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Gast
#816998
Nachtrag:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
Hi, Das mit der Adresse fiel mir nach dem Poat auch auf, hatte es aber trotzdem nicht gleich lösen können. So einfach kann's gehen. Manchmal sieht man den Wald vor Bäumen nicht. Wieder was gelernt... Vielen Dank, Alex
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.