Peter schrieb:
> Habe versucht deine Infos in die Empfangsroutine einfließen zu lassen,
> klappt leider noch nicht so richtig:
> [c]
> void uart_gets(char *test)
> {
> char c;
> c = uart_getc();
> if(!(c & UART_NO_DATA))
> {
> *test = c;
> test++;
> do {
> if(!(c & UART_NO_DATA))
> {
> *test = uart_getc();
> test++;
Du gehst immer noch davon aus, dass das was von uart_getc() kommt ein
gültiges Zeichen ist.
Du musst das, was du von uart_getc() bekommst TESTEN, ob UART_NO_DATA
nicht gesetzt ist, und nur dann wenn UART_NO_DATA nicht gesetzt ist,
erst dann kannst du es durch Zuweisung an *test an den String anhängen!
Es hilft dir nichts, wenn du immer nur c abtestest, ob UART_NO_DATA
gesetzt ist. c hat mit dem LETZTEN Aufruf von uart_getc() nix zu tun!
Du hast zwar dein Programm ein wenig umgestellt, aber du hast an der
Logik nichts geändert. Das Grundübel ist immer noch das gleiche.