diff --git a/plot.c b/plot.c index 135d8d7..7145244 100644 --- a/plot.c +++ b/plot.c @@ -2117,7 +2117,12 @@ static void update_waterfall(void){ int i; int w_width = area_width < WIDTH ? area_width : WIDTH; // START_PROFILE; - for (i = CHART_BOTTOM-1; i >=graph_bottom; i--) { // Scroll down +#define WATERFALL_MULTI (SPI_BUFFER_SIZE / WIDTH) + for (i = CHART_BOTTOM-WATERFALL_MULTI; i>=graph_bottom; i-=WATERFALL_MULTI) { // Scroll down WATERFALL_MULTI lines at once + ili9341_read_memory(OFFSETX, i, w_width, WATERFALL_MULTI, spi_buffer); + ili9341_bulk(OFFSETX, i+1, w_width, WATERFALL_MULTI); + } + for (i = CHART_BOTTOM-((CHART_BOTTOM-graph_bottom)/WATERFALL_MULTI)*WATERFALL_MULTI-1; i>=graph_bottom; i--) { // Scroll down remaining lines ili9341_read_memory(OFFSETX, i, w_width, 1, spi_buffer); ili9341_bulk(OFFSETX, i+1, w_width, 1); }