- added Delay to Serial flush method

Dependents:   WeeESP8266

Fork of ArduinoAPI by ITEAD STUDIO

Committer:
JojoS
Date:
Mon Apr 24 16:23:14 2017 +0000
Revision:
7:c62910a9e405
Parent:
0:5ebc917ebd09
support routiines for ESP;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
itead 0:5ebc917ebd09 1 #include "itoas.h"
itead 0:5ebc917ebd09 2
itead 0:5ebc917ebd09 3 char* ltoa( long value, char *string, int radix )
itead 0:5ebc917ebd09 4 {
itead 0:5ebc917ebd09 5 char tmp[33];
itead 0:5ebc917ebd09 6 char *tp = tmp;
itead 0:5ebc917ebd09 7 long i;
itead 0:5ebc917ebd09 8 unsigned long v;
itead 0:5ebc917ebd09 9 int sign;
itead 0:5ebc917ebd09 10 char *sp;
itead 0:5ebc917ebd09 11 if ( string == NULL )
itead 0:5ebc917ebd09 12 {
itead 0:5ebc917ebd09 13 return 0 ;
itead 0:5ebc917ebd09 14 }
itead 0:5ebc917ebd09 15 if (radix > 36 || radix <= 1)
itead 0:5ebc917ebd09 16 {
itead 0:5ebc917ebd09 17 return 0 ;
itead 0:5ebc917ebd09 18 }
itead 0:5ebc917ebd09 19 sign = (radix == 10 && value < 0);
itead 0:5ebc917ebd09 20 if (sign)
itead 0:5ebc917ebd09 21 {
itead 0:5ebc917ebd09 22 v = -value;
itead 0:5ebc917ebd09 23 }
itead 0:5ebc917ebd09 24 else
itead 0:5ebc917ebd09 25 {
itead 0:5ebc917ebd09 26 v = (unsigned long)value;
itead 0:5ebc917ebd09 27 }
itead 0:5ebc917ebd09 28 while (v || tp == tmp)
itead 0:5ebc917ebd09 29 {
itead 0:5ebc917ebd09 30 i = v % radix;
itead 0:5ebc917ebd09 31 v = v / radix;
itead 0:5ebc917ebd09 32 if (i < 10)
itead 0:5ebc917ebd09 33 *tp++ = i+'0';
itead 0:5ebc917ebd09 34 else
itead 0:5ebc917ebd09 35 *tp++ = i + 'a' - 10;
itead 0:5ebc917ebd09 36 }
itead 0:5ebc917ebd09 37 sp = string;
itead 0:5ebc917ebd09 38 if (sign)
itead 0:5ebc917ebd09 39 *sp++ = '-';
itead 0:5ebc917ebd09 40 while (tp > tmp)
itead 0:5ebc917ebd09 41 *sp++ = *--tp;
itead 0:5ebc917ebd09 42 *sp = 0;
itead 0:5ebc917ebd09 43 return string;
itead 0:5ebc917ebd09 44 }
itead 0:5ebc917ebd09 45
itead 0:5ebc917ebd09 46 char* ultoa( unsigned long value, char *string, int radix )
itead 0:5ebc917ebd09 47 {
itead 0:5ebc917ebd09 48 char tmp[33];
itead 0:5ebc917ebd09 49 char *tp = tmp;
itead 0:5ebc917ebd09 50 long i;
itead 0:5ebc917ebd09 51 unsigned long v = value;
itead 0:5ebc917ebd09 52 char *sp;
itead 0:5ebc917ebd09 53 if ( string == NULL )
itead 0:5ebc917ebd09 54 {
itead 0:5ebc917ebd09 55 return 0;
itead 0:5ebc917ebd09 56 }
itead 0:5ebc917ebd09 57 if (radix > 36 || radix <= 1)
itead 0:5ebc917ebd09 58 {
itead 0:5ebc917ebd09 59 return 0;
itead 0:5ebc917ebd09 60 }
itead 0:5ebc917ebd09 61
itead 0:5ebc917ebd09 62 while (v || tp == tmp)
itead 0:5ebc917ebd09 63 {
itead 0:5ebc917ebd09 64 i = v % radix;
itead 0:5ebc917ebd09 65 v = v / radix;
itead 0:5ebc917ebd09 66 if (i < 10)
itead 0:5ebc917ebd09 67 *tp++ = i+'0';
itead 0:5ebc917ebd09 68 else
itead 0:5ebc917ebd09 69 *tp++ = i + 'a' - 10;
itead 0:5ebc917ebd09 70 }
itead 0:5ebc917ebd09 71 sp = string;
itead 0:5ebc917ebd09 72
itead 0:5ebc917ebd09 73 while (tp > tmp)
itead 0:5ebc917ebd09 74 *sp++ = *--tp;
itead 0:5ebc917ebd09 75 *sp = 0;
itead 0:5ebc917ebd09 76 return string;
itead 0:5ebc917ebd09 77 }
itead 0:5ebc917ebd09 78
itead 0:5ebc917ebd09 79
itead 0:5ebc917ebd09 80 char* itoa( int value, char *string, int radix )
itead 0:5ebc917ebd09 81 {
itead 0:5ebc917ebd09 82 return ltoa( value, string, radix ) ;
itead 0:5ebc917ebd09 83 }
itead 0:5ebc917ebd09 84
itead 0:5ebc917ebd09 85 char* utoa( unsigned long value, char *string, int radix )
itead 0:5ebc917ebd09 86 {
itead 0:5ebc917ebd09 87 return ultoa( value, string, radix ) ;
itead 0:5ebc917ebd09 88 }