sprintf %f geht nicht

Gast #1912059
Lesenswert?

http://www.mikrocontroller.net/articles/FAQ#Aktivieren_der_Floating_Point_Version_von_sprintf_beim_WinAVR_mit_AVR-Studio 
pauschal würde ich sagen, lass dass mit den floats und lies dir den 
Artikel Festkommaarithmetik durch.
Außerdem solltest du dir angewöhnen mehr Code zu zeigen, in mit den 
Möglichkeiten der Foren-Software zu formatieren und vor allem sollte der 
Code kompilierbar sein. Rest siehe Netiquette.
Moderator Persönliche Seite #1912110
Lesenswert?

tset schrieb:
> pauschal würde ich sagen, lass dass mit den floats

Pauschal würde ich sagen, dass pauschale Aussagen Unfug sind. ;-)

Gleitkommazahlen haben einen unbeschreiblichen Vorteil: eine recht
gute Dynamik, sodass man gerade während der Prototypenphase damit erst
einmal schnell zu einem Ergebnis kommt.  Ihre Darstellung entspricht
dem, was wir als normale Zahlendarstellung benutzen, der Debugger kann
sie einem direkt anzeigen.  Wenn man also 1.55 für eine Variable
sieht, dann weiß man, dass da soeben 1,55 V gemessen worden sind,
während das für 0x0623 nicht so offensichtlich ist.  Außerdem muss man
sich erstmal nicht um irgendwelche Zahlenbereichsüberläufe und
dergleichen kümmern.

Wenn der Algorithmus erst einmal steht, und man mit ihm nicht
zufrieden ist (zu viel Speicherverbrauch, zu lange Rechenzeit, zu
geringe Genauigkeit), kann man sich allemal an die Optimierung mittels
Festkommaarithmetik machen.

Ehrlich gesagt, verstehe ich diesen Hype "Nimm ja nicht auf keinen
Fall überhaupt jemals keine Gleitkommazahlen auf so einem kleinen
Controller!" nicht.  Controller, die größer als der Ur-AT90S1200 sind,
sind schon lange erfunden, und deren Mehrpreis (im Vergleich zum
kleinsten möglichen Controller) liegt selbst nach Maßgaben eines
Hobbybudgets in der Regel kaum bei einer Stunde Arbeitszeit -- und die
hat man ganz schnell durch die Bequemlichkeit wieder rein.

Wenn man für richtig große Stückzahlen entwickelt, ist das natürlich
was anderes, aber wen von uns hier betrifft das denn wirklich?
Gast #1912132
Lesenswert?

Jörg Wunsch schrieb:
> tset schrieb:
>> pauschal würde ich sagen, lass dass mit den floats
> Pauschal würde ich sagen, dass pauschale Aussagen Unfug sind. ;-)
Pauschal würde ich sagen, dass man an einem Zweizeiler nicht viel 
erkennen kann, also kann zumindest ich dann nur pauschale Aussagen 
treffen und da stehe ich zu 'wenn moeglich kein float auf einem AVR'. 
;-)
Zu dem Rest deines Beitrags: ich habe auf den Artikel 
Festkommaarithmetik hingewiesen, um zu entscheiden, ob float oder nicht, 
hat er jetzt schon einiges zum Lesen.

Ich hätte ja auch
1
s[]="2.88\r\n";
2
uputs(s);
schreiben können, wäre bei dem, was man aus dem Zweizeiler sehen kann, 
auch richtig gewesen. ;-)

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