42 #define TO_DEC(i) (i <= 9 ? '0' + i : '?')
72 float bytes_to_float(uint8_t byte0, uint8_t byte1, uint8_t byte2, uint8_t byte3)
107 void splitFloat(
float fValue, uint16_t *beforeComma, uint16_t *afterComma, uint8_t decimalPlaces)
110 *beforeComma = (uint16_t)fValue;
113 float multiplicationFactor = 1.0;
114 for (uint8_t counter = 0; counter < decimalPlaces; counter++) multiplicationFactor *= 10.0;
115 *afterComma = (uint16_t)((
float)(fValue-(*beforeComma))*multiplicationFactor);
118 uint8_t roundingNumber = (uint8_t)(((
float)(fValue-(*beforeComma))*(multiplicationFactor*10.0))-(*afterComma)*10);
119 if (roundingNumber > 4)
122 if ((decimalPlaces == 1) && (*afterComma) == 10)
154 for (counter = 0; counter < totalChars; counter++)
159 buf[counter++] =
'\0';
164 char backwardsBuf[10];
166 uint32_t calcval = value;
168 uint8_t lengthCounter = 0;
174 uint32_t rem = calcval % 10;
175 backwardsBuf[length] =
TO_DEC(rem);
178 calcval = calcval - rem;
179 calcval = calcval / 10;
183 uint8_t addedZeros = 0;
190 while (totalChars != 1) {
199 uint16_t checkValue = value;
200 while (checkValue < power)
211 lengthCounter = length;
214 while (index < (length + addedZeros))
216 buf[index] = backwardsBuf[lengthCounter-1];
222 buf[(length + addedZeros)] =
'\0';