|
@@ -78,13 +78,22 @@ struct SerialBase {
|
78
|
78
|
FORCE_INLINE void write(const char* str) { while (*str) write(*str++); }
|
79
|
79
|
FORCE_INLINE void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
|
80
|
80
|
FORCE_INLINE void print(const char* str) { write(str); }
|
81
|
|
- NO_INLINE void print(char c, int base = 0) { print((long)c, base); }
|
82
|
|
- NO_INLINE void print(unsigned char c, int base = 0) { print((unsigned long)c, base); }
|
83
|
|
- NO_INLINE void print(int c, int base = DEC) { print((long)c, base); }
|
84
|
|
- NO_INLINE void print(unsigned int c, int base = DEC) { print((unsigned long)c, base); }
|
85
|
|
- void print(long c, int base = DEC) { if (!base) write(c); write((const uint8_t*)"-", c < 0); printNumber(c < 0 ? -c : c, base); }
|
86
|
|
- void print(unsigned long c, int base = DEC) { printNumber(c, base); }
|
87
|
|
- void print(double c, int digits = 2) { printFloat(c, digits); }
|
|
81
|
+ NO_INLINE void print(char c, int base = 0) { print((long)c, base); }
|
|
82
|
+ NO_INLINE void print(unsigned char c, int base = 0) { print((unsigned long)c, base); }
|
|
83
|
+ NO_INLINE void print(int c, int base = DEC) { print((long)c, base); }
|
|
84
|
+ NO_INLINE void print(unsigned int c, int base = DEC) { print((unsigned long)c, base); }
|
|
85
|
+ void print(unsigned long c, int base = DEC) { printNumber(c, base); }
|
|
86
|
+ void print(double c, int digits = 2) { printFloat(c, digits); }
|
|
87
|
+ void print(long c, int base = DEC) {
|
|
88
|
+ if (!base) {
|
|
89
|
+ write(c);
|
|
90
|
+ return;
|
|
91
|
+ }
|
|
92
|
+ if (base == DEC && c < 0) {
|
|
93
|
+ write((uint8_t)'-'); c = -c;
|
|
94
|
+ }
|
|
95
|
+ printNumber(c, base);
|
|
96
|
+ }
|
88
|
97
|
|
89
|
98
|
NO_INLINE void println(const char s[]) { print(s); println(); }
|
90
|
99
|
NO_INLINE void println(char c, int base = 0) { print(c, base); println(); }
|
|
@@ -98,6 +107,10 @@ struct SerialBase {
|
98
|
107
|
|
99
|
108
|
// Print a number with the given base
|
100
|
109
|
void printNumber(unsigned long n, const uint8_t base) {
|
|
110
|
+ if (!base) {
|
|
111
|
+ write((uint8_t)n);
|
|
112
|
+ return;
|
|
113
|
+ }
|
101
|
114
|
if (n) {
|
102
|
115
|
unsigned char buf[8 * sizeof(long)]; // Enough space for base 2
|
103
|
116
|
int8_t i = 0;
|