Gast
#558300
Hallo,
ich hab mal wieder ein prob und wäre super froh, wenn mir jemand helfen
könnte. ich lese zahlen als string über uart ein und konvertiere, die
dann in ein float, möchte diesen float dann aber als kontrolle nochmal
als string über uart ausgeben. bei dem ersten so eingegebenen wert
funktioniert das auch super, nur beim zweiten gibt mir die
kontrollausgabe nur die stellen vor dem komma aus (die rundung scheint
aber noch zu funktionieren). habt ihr eine ahnung woran das liegt?
String-Erstellung:
void input_string(char *s, unsigned int size)
{
int i=0;
char c;
do
{
c=uart_getc();
if (c!='\r')
{
s[i]=c;
uart_putc(c);
i++;
}
}
while(i< size && c!='\r');
s[i]='\0';
}
Eingabe-Funktion:
void input_Parameters(unsigned int buffersize)
{
unsigned char c = 0;
char buffer[buffersize];
unsigned int dec = 5;
clr_screen();
uart_puts_p (PSTR("Koeffizient Y(k-1) = "));
input_string(buffer, buffersize);
coeff_y_alt1 = atof(buffer);
uart_puts_p (PSTR(" >> Kontrollausgabe: "));
uart_puts(dtostrf(coeff_y_alt1, buffersize, dec, buffer));
uart_puts_p (PSTR("\r\n"));
uart_puts_p (PSTR("Koeffizient Y(k-2) = "));
input_string(buffer, buffersize);
coeff_y_alt2 = atof(buffer);
uart_puts_p (PSTR(" >> Kontrollausgabe: "));
uart_puts(dtostrf(coeff_y_alt2, buffersize, dec, buffer));
}
Wäre super, wenn jemand ne Idee hätte.
Schonmal Danke!
Gruß
tobi