Test suite for auSpeed combo controller (ESC/power/servo) More info: http://aupilot.com.au

Dependencies:   mbed

Committer:
Kir
Date:
Tue Mar 17 08:46:26 2015 +0000
Revision:
0:d38b3edad9b3
release 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kir 0:d38b3edad9b3 1
Kir 0:d38b3edad9b3 2 /**
Kir 0:d38b3edad9b3 3 * C++ version 0.4 char* style "itoa":
Kir 0:d38b3edad9b3 4 * Written by Lukás Chmela
Kir 0:d38b3edad9b3 5 * Released under GPLv3.
Kir 0:d38b3edad9b3 6 */
Kir 0:d38b3edad9b3 7
Kir 0:d38b3edad9b3 8 char* itoa(int value, char* result, int base)
Kir 0:d38b3edad9b3 9 {
Kir 0:d38b3edad9b3 10 // check that the base if valid
Kir 0:d38b3edad9b3 11 if ( base < 2 || base > 36 ) {
Kir 0:d38b3edad9b3 12 *result = '\0';
Kir 0:d38b3edad9b3 13 return result;
Kir 0:d38b3edad9b3 14 }
Kir 0:d38b3edad9b3 15
Kir 0:d38b3edad9b3 16 char* ptr = result, *ptr1 = result, tmp_char;
Kir 0:d38b3edad9b3 17 int tmp_value;
Kir 0:d38b3edad9b3 18
Kir 0:d38b3edad9b3 19 do {
Kir 0:d38b3edad9b3 20 tmp_value = value;
Kir 0:d38b3edad9b3 21 value /= base;
Kir 0:d38b3edad9b3 22 *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz"[35 + (tmp_value - value * base)];
Kir 0:d38b3edad9b3 23 } while ( value );
Kir 0:d38b3edad9b3 24
Kir 0:d38b3edad9b3 25 // Apply negative sign
Kir 0:d38b3edad9b3 26 if ( tmp_value < 0 )
Kir 0:d38b3edad9b3 27 *ptr++ = '-';
Kir 0:d38b3edad9b3 28 *ptr-- = '\0';
Kir 0:d38b3edad9b3 29
Kir 0:d38b3edad9b3 30 while ( ptr1 < ptr ) {
Kir 0:d38b3edad9b3 31 tmp_char = *ptr;
Kir 0:d38b3edad9b3 32 *ptr-- = *ptr1;
Kir 0:d38b3edad9b3 33 *ptr1++ = tmp_char;
Kir 0:d38b3edad9b3 34 }
Kir 0:d38b3edad9b3 35
Kir 0:d38b3edad9b3 36 return result;
Kir 0:d38b3edad9b3 37 }