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.