diff --git a/eink/eink b/eink/eink index 7a0f00c..91b49cd 160000 --- a/eink/eink +++ b/eink/eink @@ -1 +1 @@ -Subproject commit 7a0f00ceab04f291596d0c1064e64833b4f7a280 +Subproject commit 91b49cd536ea8542908bdfb68a6cb7164128df52 diff --git a/eink/eink.cppproj b/eink/eink.cppproj index 0d12cc2..f021aa5 100644 --- a/eink/eink.cppproj +++ b/eink/eink.cppproj @@ -224,6 +224,9 @@ compile + + compile + compile diff --git a/eink/flash b/eink/flash index 6edb2e5..f9014ae 160000 --- a/eink/flash +++ b/eink/flash @@ -1 +1 @@ -Subproject commit 6edb2e5a21e0ce58ff2df936caee8b84e240a46b +Subproject commit f9014aea6cbbb1ea76f30148a64e6c3fc3152dcd diff --git a/eink/main.cpp b/eink/main.cpp index 450907b..8d5f70c 100644 --- a/eink/main.cpp +++ b/eink/main.cpp @@ -1,5 +1,7 @@ #include "clock.hpp" +#include + #include "eink/eink.hpp" #include "flash/flash.hpp" #include "io/io.hpp" @@ -13,6 +15,33 @@ REGISTER_UART0_INT_VECTORS(uart_t); using spi_t = eink::Spi; using eink_t = eink::Eink<200, 200, spi_t, io::P::C1, io::P::C0>; +void dumpOTP(eink_t &einkDisplay, uart_t &serial) +{ + constexpr auto printWidth = 16; + auto printedCnt = std::size_t{0}; + + einkDisplay.dumpOTP([&serial, &printedCnt](const auto &data) { + constexpr auto printAddress = true; + + if (printedCnt > 0 && printedCnt % printWidth == 0) { + serial << F("\r\n"); + } + + if (printAddress && printedCnt % printWidth == 0) { + serial << F("0x"); + serial.txNumber(printedCnt); + serial << F(": "); + } + + serial << F("0x"); + serial.txNumber, 16, 2>(data); + serial << F(", "); + + ++printedCnt; + }); + serial << F("\r\n"); +} + int main() { uart_t serial; @@ -33,6 +62,9 @@ int main() serial << F("e-Paper draw") << F("\r\n"); einkDisplay.draw(RLE_IMAGE); + serial << F("e-Paper dump OTP") << F("\r\n"); + dumpOTP(einkDisplay, serial); + serial << F("e-Paper sleep") << F("\r\n"); einkDisplay.sleep();