void fix16ToStr(fix16 value, char *str, s16 numdec) { u32 len; fix16 v; u32 frac; u8 strFrac[8]; len = 0; if (value < 0) { v = -value; str[len++] = '-'; } else v = value; len += uintToStr_(fix16ToInt(v), &str[len], 1, 16); str[len++] = '.'; // get fractional part frac = fix16Frac(v) * 1000; frac /= 1 << FIX16_FRAC_BITS; // get fractional string uintToStr(frac, strFrac, 3); if (numdec >= 3) strcpy(&str[len], strFrac); else strncpy(&str[len], strFrac, numdec); }
void fix32ToStr(fix32 value, char *str, s16 numdec) { u32 len; fix32 v; len = 0; if (value < 0) { v = -value; str[len++] = '-'; } else v = value; len += uintToStr_(fix32ToInt(v), &str[len], 1, 16); str[len++] = '.'; uintToStr_((fix32Frac(v) * 1000) / (1 << FIX32_FRAC_BITS), &str[len], 1, numdec); }
void intToStr(s32 value, char *str, s16 minsize) { u32 v; char *dst = str; if (value < 0) { v = -value; *dst++ = '-'; } else v = value; uintToStr_(v, dst, minsize, 16); }
void uintToStr(u32 value, char *str, s16 minsize) { uintToStr_(value, str, minsize, 16); }