ATMEL128 sprintf-Problem AVR-Studio 5

OP #2349625
Lesenswert?

Hallo !

Ich bin nun auf die neue AVR-Studio5 umgestiegen was eigentlich nichts 
ausmachen sollte, aber bei mir funktioniert noch etwas nicht.
Ich hab um sprintf zu testen folgenden Link mir durchgelesen:
sprintf-http://www.mikrocontroller.net/articles/FAQ#Aktivieren_der_Floating_Point_Version_von_sprintf_beim_WinAVR_mit_AVR-Studio
Hab versucht mal alles in der neuen 5er Umgebung einzustellen.
Dazu hab ich zwei Screenshots angehängt.
Ich hab einen ganz einfachen Code geschrieben:
1
#include <avr/io.h>
2
#include <math.h>
3
#include <stdio.h>
4

5
int main(void)
6
{
7
  unsigned int  Erg=528;
8
  double        U=0.2F,K=0.2F;
9
  unsigned char Buffer[20];
10
  
11
  K=(double)Erg;
12
  U=K*(double)3.4/(double)328.0;
13
  
14
  sprintf(Buffer,"%f\r\n",U);
15
          
16
   while(1)
17
   {
18
       //TODO:: Please write your application code 
19
   }
20
}

Wenn ich das ganze simuliere dann lass ich mir über den Watch die 
Variable Buffer anzeigen. Aber das was da drinsteht ist alles andere als 
was man erhofft.
In der Variablen U steht das richtige Ergebnis.
Aber im Buffer steht: Buffer[0]=63 Buffer[1]=13 Buffer[2]=10.
Zumindest sieht man das \r\n
Aber es sollte im Buffer ja 5,473... stehen.
Was mache ich falsch ?

Gruß U.
Angehängte Dateien:
#2349644
Lesenswert?

Hi,
U. B. schrieb:
> Aber im Buffer steht: Buffer[0]=63 Buffer[1]=13 Buffer[2]=10.
> Zumindest sieht man das \r\n
63 == ? , das zeigt dir das die transformation nicht gelungen ist. Also 
ist irgendwas an deinen Einstellungen falsch.

Du kannst aber auch von der stdlib.h -->
1
dtostrf(double __val, signed char __width, unsigned chat __prec, char* s);
benutzen.

Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren