diff --git a/include/lvgl/drivers/display/lv_draw_eve_target.h b/include/lvgl/drivers/display/lv_draw_eve_target.h index 72092c750..43a1caa7e 100644 --- a/include/lvgl/drivers/display/lv_draw_eve_target.h +++ b/include/lvgl/drivers/display/lv_draw_eve_target.h @@ -48,7 +48,8 @@ typedef enum { LV_DRAW_EVE_OPERATION_CS_ASSERT, /**< set the "CS_N" pin low */ LV_DRAW_EVE_OPERATION_CS_DEASSERT, /**< set the "CS_N" pin high */ LV_DRAW_EVE_OPERATION_SPI_SEND, /**< send `length` bytes of `data` over SPI */ - LV_DRAW_EVE_OPERATION_SPI_RECEIVE /**< receive `length` bytes into `data` from SPI */ + LV_DRAW_EVE_OPERATION_SPI_RECEIVE, /**< receive `length` bytes into `data` from SPI */ + LV_DRAW_EVE_OPERATION_DELAY_MS /**< implement a platform specific delay function */ } lv_draw_eve_operation_t; typedef void (*lv_draw_eve_operation_cb_t)(lv_display_t * disp, lv_draw_eve_operation_t operation, void * data, diff --git a/src/draw/eve/lv_draw_eve_arc.c b/src/draw/eve/lv_draw_eve_arc.c index 9c355458e..a6ad3302e 100644 --- a/src/draw/eve/lv_draw_eve_arc.c +++ b/src/draw/eve/lv_draw_eve_arc.c @@ -52,7 +52,7 @@ static int32_t chord_length(int16_t radius, int16_t angle_degrees) angle_degrees %= 360; if(angle_degrees < 0) angle_degrees += 360; int32_t sin_value = lv_trigo_sin(angle_degrees / 2); - int64_t chord_length = 2 * radius * sin_value / 32768.0; + int32_t chord_length = (int32_t)(2 * radius * sin_value / 32768.0); return (int32_t)chord_length ; } diff --git a/src/drivers/display/ft81x/lv_ft81x_defines.h b/src/drivers/display/ft81x/lv_ft81x_defines.h index 9a81cd652..a0f3ef7e4 100644 --- a/src/drivers/display/ft81x/lv_ft81x_defines.h +++ b/src/drivers/display/ft81x/lv_ft81x_defines.h @@ -19,6 +19,10 @@ extern "C" { * DEFINES *********************/ +#if LV_USE_DRAW_EVE + //Exclude all this file to avoid redefining what is in the EVE GPU driver. +#else //NOT LV_USE_DRAW_EVE + /* ft81x and ft80x each define exclusive * definitions. Define ft81x for now. * @@ -827,6 +831,7 @@ extern "C" { #endif +#endif //NOT LV_USE_DRAW_EVE /********************** * TYPEDEFS **********************/ diff --git a/src/libs/FT800-FT813/EVE_target.h b/src/libs/FT800-FT813/EVE_target.h index 2a26c1b55..118d60963 100644 --- a/src/libs/FT800-FT813/EVE_target.h +++ b/src/libs/FT800-FT813/EVE_target.h @@ -5,14 +5,14 @@ #include "../../draw/eve/lv_draw_eve_private.h" #include "../../core/lv_global.h" -#define lv_eve_write_buf (LV_GLOBAL_DEFAULT()->draw_eve_unit->lv_eve_write_buf) -#define lv_eve_write_buf_len (LV_GLOBAL_DEFAULT()->draw_eve_unit->lv_eve_write_buf_len) +#define _lv_eve_write_buf (LV_GLOBAL_DEFAULT()->draw_eve_unit->lv_eve_write_buf) +#define _lv_eve_write_buf_len (LV_GLOBAL_DEFAULT()->draw_eve_unit->lv_eve_write_buf_len) static inline void lv_eve_target_flush_write_buf(void); static inline void DELAY_MS(uint16_t ms) { - lv_delay_ms(ms); + lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_DELAY_MS, NULL, ms); } static inline void EVE_cs_set(void) @@ -39,10 +39,10 @@ static inline void EVE_pdn_clear(void) static inline void spi_transmit(uint8_t data) { #if LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL - if(lv_eve_write_buf_len == sizeof(lv_eve_write_buf)) { + if(_lv_eve_write_buf_len == sizeof(_lv_eve_write_buf)) { lv_eve_target_flush_write_buf(); } - lv_eve_write_buf[lv_eve_write_buf_len++] = data; + _lv_eve_write_buf[_lv_eve_write_buf_len++] = data; #else lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, &data, sizeof(data)); #endif @@ -54,14 +54,14 @@ static inline void spi_transmit_32(uint32_t data) data = lv_swap_bytes_32(data); #endif #if LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL - if(lv_eve_write_buf_len + 4 > sizeof(lv_eve_write_buf)) { + if(_lv_eve_write_buf_len + 4 > sizeof(_lv_eve_write_buf)) { lv_eve_target_flush_write_buf(); } uint8_t * buf4 = (uint8_t *) &data; - lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[0]; - lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[1]; - lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[2]; - lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[3]; + _lv_eve_write_buf[_lv_eve_write_buf_len++] = buf4[0]; + _lv_eve_write_buf[_lv_eve_write_buf_len++] = buf4[1]; + _lv_eve_write_buf[_lv_eve_write_buf_len++] = buf4[2]; + _lv_eve_write_buf[_lv_eve_write_buf_len++] = buf4[3]; #else lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, &data, sizeof(data)); #endif @@ -76,12 +76,12 @@ static inline void lv_eve_target_spi_transmit_buf(const void * data, uint32_t si static inline void lv_eve_target_flush_write_buf(void) { #if LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL - if(lv_eve_write_buf_len == 0) { + if(_lv_eve_write_buf_len == 0) { return; } - lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, lv_eve_write_buf, - lv_eve_write_buf_len); - lv_eve_write_buf_len = 0; + lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, _lv_eve_write_buf, + _lv_eve_write_buf_len); + _lv_eve_write_buf_len = 0; #endif }