Owen Senmeis schrieb:
> Man erwartet folgendes:
>
> 1. Bei Eingaben ungleich '\n'(0x0A): das selbe Zeichen wird
> zurückgesendet.
> 2. Bei Eingaben gleich '\n': 0x0A und 0x5A werden zurückgesendet.
Eigentlich nicht.
Mit dem Code
1 | sputchar(sgetchar());
|
2 | if (sgetchar() == '\n')
|
erwartet das kaum jemand.
sgetchar() liefert das nächste Zeichen. Direkt von der UART! Wenn du es
erst mal gelesen hast, dann ist es innerhalb sgetchar() nicht mehr
verfügbar. Wenn du also JEDES empfangene Zeichen untersuchen willst, ob
es \n ist, dann musst du dir das schon selber in einer Variablen merken,
damit du dann auch wirklich das empfangene Zeichen untersuchen kannst,
nachdem du es zurückgeschickt hast.
1 | zeichen = sgetchar();
|
2 | sputchar( zeichen );
|
3 | if( zeichen == '\n' )
|
4 | sputchar( 'Z' );
|
> Übrigens ist es möglich, eine Zeichenkette von 10 Zeichen
> mit dieser Bib zu empfangen?
Wenn du dir eine entsprechende Funktion schreibst: Sicher. Was sollte
dich daran hindern?