Add printing of uint64_t

This commit is contained in:
nanosonde 2020-07-04 16:32:18 +02:00
parent b5b0f4f0d2
commit 318a384532
2 changed files with 41 additions and 0 deletions

View File

@ -111,6 +111,23 @@ int ArduinoPlatform::readWriteSpi(uint8_t *data, size_t len)
return 0;
}
void printUint64(uint64_t value, int base = DEC)
{
char buf[8 * sizeof(uint64_t) + 1];
char* str = &buf[sizeof(buf) - 1];
*str = '\0';
uint64_t n = value;
do {
char c = n % base;
n /= base;
*--str = c < 10 ? c + '0' : c + 'A' - 10;
} while (n > 0);
print(str);
}
void print(const char* s)
{
ArduinoPlatform::SerialDebug->print(s);
@ -170,6 +187,16 @@ void print(unsigned long num, int base)
ArduinoPlatform::SerialDebug->print(num, base);
}
void print(unsigned long long num)
{
printUint64(num);
}
void print(unsigned long long num, int base)
{
printUint64(num, base);
}
void print(double num)
{
ArduinoPlatform::SerialDebug->print(num);
@ -235,6 +262,18 @@ void println(unsigned long num, int base)
ArduinoPlatform::SerialDebug->println(num, base);
}
void println(unsigned long long num)
{
printUint64(num);
println("");
}
void println(unsigned long long num, int base)
{
printUint64(num, base);
println("");
}
void println(double num)
{
ArduinoPlatform::SerialDebug->println(num);

View File

@ -58,6 +58,7 @@ void print(int, int = DEC);
void print(unsigned int, int = DEC);
void print(long, int = DEC);
void print(unsigned long, int = DEC);
void print(unsigned long long, int = DEC);
void print(double);
void println(const char[]);
@ -67,6 +68,7 @@ void println(int, int = DEC);
void println(unsigned int, int = DEC);
void println(long, int = DEC);
void println(unsigned long, int = DEC);
void println(unsigned long long, int = DEC);
void println(double);
void println(void);