Hallo@all,
hat schonmal jemand mit der Funktion *ecvt gearbeitete?
Ich möcht eine Float-variable (4-Byte) auf meinem LCD mit
meiner Printfunktion ausgeben:
void LCD_Print (char *string)
{
while (*string)
{
send_char (*string);
string++;
}
}
Ich bekomme es einfach nicht hin die Funktion richtig aufzurufen-
laut Buch steht: char *ecvt(double value, int digit,int *decpt, int
*sign) - value/Wert,
digit/Zeichenanzahl-decpt/LageKommastelle-sign/Vorzeichen.
Kann mir jemand ein Beispiel geben, wie ich die Funktion richtig
benutzte und den Rückgabewert an meine LCD_Print Routine übergebe?
Noch ne zweite Frage-wenn ich 2 charakter Datentypen zu einem Float
zusammen möchte (brauch ich für spätere Berechnungen) kann ich das so
machen - value ist ein float, high und low sind character:
value = high>>8 | low;
Danke schonmal
Martin
.
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt(source, precision, &decimal, &sign);
printf("source: %2.10f\n", source);
printf("buffer: '%s'\n", buffer);
printf("decimal: %d\n", decimal);
printf("sign: %d\n", sign);
Gibt folgendes aus:
source: 3.1415926535
buffer: '3141592654'
decimal: 1
sign: 0
Für Deine Anwendung sähe das dann so aus:
// Variablen wie vor
buffer = _ecvt(source, precision, &decimal, &sign);
LCD_Print(buffer);
zur 2.Frage: wenn die beiden Bytes das High und Low Byte einer 16Bit Zahl sind dann geht es so value = (high<<8) | low; << ist abdersrum als bei dir, Klammern setze ich lieber zu viel Walter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.