Gast
#556864
Hallo,
ich hab mal eine Frage folgende uart_puts()-Implementierung betreffend.
Ich verwende:
void uart_puts (const char *s)
{
while (*s)
{
uart_putc(*s);
s++;
}
}
... mit ...
void uart_putc( unsigned char data )
{
while ( !(UCSRA & (1<<UDRE)) );
UDR = data;
}
Wenn ich eine ganze Reihe von Strings mit uart_puts() übertrage um eine
Art Menü im Terminal-Fenster zu erzeugen, unterbricht plötzlich die
Übertragung und zeigt nur noch ein "R" am Ende, dass sich eigentlich im
zu übertragenden String nicht befunden hat. Bei einer noch höheren
Anzahl von zu sendenden Zeilen fängt plötzlich der ATMEGA8515L an
fortlaufend die ganze ASCII-Tabelle wiederzugeben, wobei er jedes
Zeichens mehrmals wiederholt. Ich nehme an, ich hab hier ein Problem mit
irgendeiner Puffergröße?!
Kann mir jemand nen Tipp geben, wie ich da zu Rande komme?!
Vielen Dank schonmal für Eure Mühe.
Gruß
tobi