Hallo XAro,
Ja, der RP6 hat in seinen Libs keine fertige Ausgabefunktion für Gleitkommazahlen.Es könnte sonst noch sein, dass es einfach an der Ausgabe liegt.
Hier eine Funktion, die eine float Variable in einen String umwandelt, den man dann mit den RP6-Befehlen ausgeben kann:
Gruß DirkCode:/** * This function makes a string out of a float value. * Example: * float myvar = 11.34; * char text[6]; * float2string(myvar,2,text); // 2 Dezimalstellen * writeString(text); // o.ä. z.B. auf das Display */ void float2string(float value, int decimal, char* valuestring) { int neg = 0; char tempstr[20]; int i = 0; int j = 0; int c; long int val1, val2; char* tempstring; tempstring = valuestring; if (value < 0) {neg = 1; value = -value;} for (j=0; j < decimal; j++) {value = value * 10;} val1 = (value * 2); val2 = (val1 / 2) + (val1 % 2); while (val2 !=0) { if ((decimal > 0) && (i == decimal)) { tempstr[i] = (char)(0x2E); //0x2E = Punkt i++; } else { c = (val2 % 10); tempstr[i] = (char) (c + 0x30); //0x30 = Null val2 = val2 / 10; i++; } } if (neg) { *tempstring = '-'; tempstring++; } i--; for (;i > -1;i--) { *tempstring = tempstr[i]; tempstring++; } *tempstring = '\0'; }







Zitieren

Lesezeichen