diff --git a/src/arduino_platform.cpp b/src/arduino_platform.cpp index 5ae6db5..b603a95 100644 --- a/src/arduino_platform.cpp +++ b/src/arduino_platform.cpp @@ -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); diff --git a/src/knx/bits.h b/src/knx/bits.h index ae99734..637f494 100644 --- a/src/knx/bits.h +++ b/src/knx/bits.h @@ -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);