Da ein writeFloat(...), z.B. zur Ausgabe der Akkuspannung oder von Messwerten fehlt, hier eine Ergänzung:
Code:
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);
             i++;
         }
         else{
             c = (val2 % 10);
             tempstr[i] = (char) (c + 0x30);
             val2 = val2 / 10;
             i++;
         }
     }
     if (neg){
         *tempstring = '-';
         tempstring++;
     }
     i--;
     for (;i > -1;i--){
         *tempstring = tempstr[i];
         tempstring++;
     }
     *tempstring = '\0';
}

    float Ubatt = 10.21; // Beispiel
    char text[6];
    float2string(Ubatt,2,text);  // 2 Dezimalstellen
    writeString(text); // o.ä. z.B. auf das Display