PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : double to string -> quasi itoa für double/float



Jericho_one
22.02.2007, 10:04
Hi!

Ich benötige eine Funktion, die mir ähnlich wie itoa einen Wert in einen String schreibt, damit ich diese auf dem Display ausgeben kann.
Gibt es sowas irgendwo!?
Hab bis jetzt zwar ne Funktion namens "gcvt" gefunden, aber die scheint bei dem WinAVR paket nicht implementiert zu sein!

Danke!

robocat
22.02.2007, 10:22
gibt es sprintf? sollte eigentlich im ansi-c99 standard sein.
manche compiler kennen auch ein ftoa bzw dtoa (kein ansi).

Jericho_one
22.02.2007, 10:43
Hi!

Danke!

Jetzt grad hab ich noch ein anderes Problem - und irgendwei dreh ich mich gerade laufend im Kreis; es ist nur ne simple Rechenoperation:

ergebnis = adcwert * wert;

so der adcwert kommt vom Analogeingang und liegt jetzt gerade bei 800 und wert liegt im moment bei 100.
ergebnis hab ich als long definiert - von daher sollte doch der zahlenberich genügen oder?
Die umsetzung aufs Display geschiet über ITOA -> kann das long?
Bzw. später ist folgende Formel geplant:

ergebnis = adcwert * wert / 2650;

maximalwerte:
adcwert: 1024
wert: 5000

d.h. das ergebnis würde bei 2000 liegen, aber zwischendrin wird "mehr" speicher benötigt. -> welchen variablentyp nehm ich denn da jetzt am besten... irgendwie rechnet mein µC grad nur noch quatch.. irendwo hab ich glaub ich nen denkfehler drin..
danke!

robocat
22.02.2007, 11:42
soweit ich weiß (mit avr-c hab ichs nicht so, verwende da eher asm) hat ein long 32 bit, das reicht also haushoch. ausgabe erfolgt dann aber mit sprintf(buffer,"%ld",ergebnis); oder mit ltoa.

gruesse von der katz