Hallo,

ich werde noch wahnisinnig bei dieser Programmiersprache. Aber naja, wollte es ja unbedingt wissen....

Zu meiner Frage:

Es geht darum, eine Zeichenkette auf einem LCD auszugeben.
Das senden vom Controller funktioniert mittlerweile einwandfrei (Dank an das Forum und an izaseba).
Wenn ich nun vom PC zB. "Hallo" sende, kann ich mit dem "Echo-Code" vom Wiki dies problemlos zurückschicken.
Mich wundert da erstmal schon die Deklaration von bZeichen als char. Wobei "Hallo" ja eigentlich aus 5 Zeichen besteht.

Die Lib von Peter Fleury ist die Grundlage für's Display und hier ist der wichtige Code-Teil:

Code:
void usart_init(void);
char receive_UART[20]; 


int main(void)
{
     usart_init();
	 lcd_init(LCD_DISP_ON);        
	 lcd_clrscr();
	 while (1) 
	 { 
		while ( !(UCSRA & (1 << RXC)) ) 
		{}	
		receive_UART[0] = UDR;
		receive_UART[19] = '\0';
		lcd_clrscr();
        lcd_gotoxy(0,0);
        lcd_puts(receive_UART);
	 }
}
Ich habe somit in der Variable "receive_UART" Platz für 19 Zeichen, das 20. und somit letzte (19. Stelle) beschließt das Ende der Zeichenkette.

Jedoch wird nur das letzte empfangene Zeichen ausgegeben.
Wie funktioniert das UDR - Register, als was wird der Inhalt gespeichert.
Wenn ein ASCII Code gesendet wurde, müsste dieser ja auch sich dort befinden, zumal ja im Echo Programm mit einer char Variable darauf zugegriffen werden konnte.


Was mache ich nur falsch, es ist deprimierend.
Kann mir jemand helfen?

Gruß
Stefan