From 28cce3f02060f589621c3179b5a7f3ecb0463b74 Mon Sep 17 00:00:00 2001 From: gemu Date: Mon, 25 Mar 2024 22:02:08 +0100 Subject: [PATCH] add cmd cpm (#21030) --- lib/lib_display/UDisplay/uDisplay.cpp | 21 +++++++++++++++++++++ lib/lib_display/UDisplay/uDisplay.h | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/lib_display/UDisplay/uDisplay.cpp b/lib/lib_display/UDisplay/uDisplay.cpp index 9f2b54216..1e40dc883 100755 --- a/lib/lib_display/UDisplay/uDisplay.cpp +++ b/lib/lib_display/UDisplay/uDisplay.cpp @@ -699,6 +699,9 @@ uDisplay::uDisplay(char *lp) : Renderer(800, 600) { Serial.printf("CLK : %d\n", spi_clk); Serial.printf("MOSI: %d\n", spi_mosi); Serial.printf("DC : %d\n", spi_dc); + Serial.printf("TS_CS: %d\n", ut_spi_cs); + Serial.printf("TS_RST: %d\n", ut_reset); + Serial.printf("TS_IRQ: %d\n", ut_irq); Serial.printf("BPAN: %d\n", bpanel); Serial.printf("RES : %d\n", reset); Serial.printf("MISO: %d\n", spi_miso); @@ -2743,6 +2746,14 @@ void uDisplay::ut_trans(char **sp, uint8_t **code) { // cmp and set *ut_code++ = UT_CPR; *ut_code++ = ut_par(&cp, 0); + } else if (!strncmp(cp, "CPM", 3)) { + // cmp multiple and set + *ut_code++ = UT_CPM; + uint8_t num = ut_par(&cp, 0); + *ut_code++ = num; + for (uint32_t cnt = 0; cnt < num; cnt++) { + *ut_code++ = ut_par(&cp, 0); + } } else if (!strncmp(cp, "CP", 2)) { // cmp and set *ut_code++ = UT_CP; @@ -2979,6 +2990,16 @@ uint16_t wval; result = (iob == ut_array[0]); break; + case UT_CPM: + // compare multiple + len = *ut_code++; + result = 0; + for (uint32_t cnt = 0; cnt < len; cnt++) { + iob = *ut_code++; + result |= (iob == ut_array[0]); + } + break; + case UT_CPR: // compare iob = *ut_code++; diff --git a/lib/lib_display/UDisplay/uDisplay.h b/lib/lib_display/UDisplay/uDisplay.h index be02ecd53..c054bd9c6 100755 --- a/lib/lib_display/UDisplay/uDisplay.h +++ b/lib/lib_display/UDisplay/uDisplay.h @@ -18,7 +18,7 @@ #endif enum { - UT_RD,UT_RDM,UT_CP,UT_RTF,UT_MV,UT_MVB,UT_RT,UT_RTT,UT_RDW,UT_RDWM,UT_WR,UT_WRW,UT_CPR,UT_AND,UT_SCALE,UT_LIM,UT_DBG,UT_GSRT,UT_XPT,UT_END + UT_RD,UT_RDM,UT_CP,UT_RTF,UT_MV,UT_MVB,UT_RT,UT_RTT,UT_RDW,UT_RDWM,UT_WR,UT_WRW,UT_CPR,UT_AND,UT_SCALE,UT_LIM,UT_DBG,UT_GSRT,UT_XPT,UT_CPM,UT_END }; #define RA8876_DATA_WRITE 0x80