Josef schrieb:
> void LCD(float wert){
*****
> itoa(wert,b,10);
****
Das passt schon mal nicht zusammen.
Aber warum machst du wert überhaupt als float?
> float a;
> while(UCSRA & (1<<RXC)){
Mööp.
Nochmal ins UART Tutorial und genau nachsehen!
> a = UDR;
Wenn du am Hyperterminal die Tasten 4 und 2 drückst, kriegst du auch 2
Zeichen übertragen. Das eine hat den ASCII Code für '4' und das andere
den ASCII Code für '2'
> Warum zeigt das Display nicht die erwarteten Zeichen an ?
Weil du
* nicht wartest, bis ein Zeichen angekommen ist, sondern das UDR
ausliest, solange kein Zeichen angekommen ist
* du zwar einen ASCII Code empfängst den du direkt aufs LCD ausgeben
könntest, du das aber nicht machst, sondern dir stattdessen die
Codezahl selber ausgeben lässt.
* der Umweg über float: Da hattest du Glück, dass sich das selber
regelt. Aber im Grunde ist der Umweg unnötig.