diff --git a/include/sta/uart.hpp b/include/sta/uart.hpp index 8680d09..b849ea3 100644 --- a/include/sta/uart.hpp +++ b/include/sta/uart.hpp @@ -38,6 +38,12 @@ namespace sta * @param b Boolean value */ void print(bool b); + /** + * @brief Print floating point value. + * + * @param d Floating point value + */ + void print(double d); /** * @brief Print integer in selected base. * @@ -97,6 +103,12 @@ namespace sta * @param b Boolean value */ void println(bool b); + /** + * @brief Print floating point value followed by a new-line. + * + * @param d Floating point value + */ + void println(double d); /** * @brief Print integer in selected base followed by a new-line. * diff --git a/src/uart.cpp b/src/uart.cpp index 2f18412..8a744bc 100644 --- a/src/uart.cpp +++ b/src/uart.cpp @@ -16,6 +16,13 @@ namespace sta print(b ? "true" : "false"); } + void UART::print(double d) + { + char buffer[64]; + snprintf(buffer, sizeof(buffer), "%f", d); + print(buffer); + } + void UART::print(uint8_t num, IntegerBase base /* = IntegerBase::DEC */) { printBase(num, base, "%u", sizeof(num)); @@ -64,6 +71,12 @@ namespace sta println(); } + void UART::println(double d) + { + print(d); + println(); + } + void UART::println(uint8_t num, IntegerBase base /* = IntegerBase::DEC */) { print(num, base);