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.