Herzlichen Dank erstmal, die Sache mit den 16bit-Zahlen wusste ich zwar,
hatte sie aber nicht hinreichend berücksichtigt. Leider funzt mein
modifizierter Code immer noch nicht:
1 | void uart_gets(char* Buffer, int MaxLen)
|
2 | {
|
3 | int Count = 0;
|
4 | unsigned int c;
|
5 |
|
6 | c = uart_getc();
|
7 | c = (unsigned char)c;
|
8 | uart_putc(c);
|
9 | while(c != '.')
|
10 | {
|
11 | Buffer[Count++] = c;
|
12 | c = uart_getc();
|
13 | c = (unsigned char)c;
|
14 | uart_putc(c);
|
15 | }
|
16 | Buffer[Count] = '\0'; //wird nie ausgeführt
|
17 | uart_puts("-->");
|
18 | uart_puts(Buffer);
|
19 | }
|
Ich hab die Fehlerbehandlung mal komplett rausgelassen, 'Luxus' kann man
immer noch später implementieren. Die Bedingung in der while-Schleife
ist allerdings immer wahr, so dass der Pfeil (-->) nie ausgegeben wird.
Wo ist mein Denkfehler?