Skip to content

Commit 8da9264

Browse files
committed
Fix Vector Map reading SD Shared SPI BUS
1 parent d56e77a commit 8da9264

File tree

5 files changed

+25
-21
lines changed

5 files changed

+25
-21
lines changed

lib/gui/src/mainScr.cpp

+20-14
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,7 @@ void getActTile(lv_event_t *event)
143143
isScrolled = true;
144144
log_d("Free PSRAM: %d", ESP.getFreePsram());
145145
log_d("Used PSRAM: %d", ESP.getPsramSize() - ESP.getFreePsram());
146-
// if (activeTile == MAP || activeTile == NAV)
147-
if (activeTile == MAP)
148-
{
149-
isPosMoved = true;
150-
redrawMap = true;
151-
}
146+
152147
if (activeTile == SATTRACK)
153148
{
154149
createSatSprite(spriteSat);
@@ -168,8 +163,6 @@ void getActTile(lv_event_t *event)
168163
else
169164
{
170165
isReady = true;
171-
redrawMap = false;
172-
isPosMoved = false;
173166
}
174167

175168
lv_obj_t *actTile = lv_tileview_get_tile_act(tilesScreen);
@@ -261,22 +254,35 @@ void updateMap(lv_event_t *event)
261254
getPosition(getLat(), getLon());
262255
if (isPosMoved)
263256
{
264-
265257
tileSize = VECTOR_TILE_SIZE;
266258
viewPort.setCenter(point);
259+
260+
#ifdef SPI_SHARED
261+
tft.endTransaction();
262+
tft.releaseBus();
263+
initSD();
264+
#endif
265+
267266
getMapBlocks(viewPort.bbox, memCache);
268-
generateVectorMap(viewPort, memCache, mapTempSprite);
267+
268+
#ifdef SPI_SHARED
269+
SD.end();
270+
tft.initBus();
271+
#endif
272+
273+
deleteMapScrSprites();
274+
createMapScrSprites();
275+
generateVectorMap(viewPort, memCache, mapTempSprite);
276+
269277
isPosMoved = false;
270278
}
271279
}
272280
else
273281
{
274282
tileSize = RENDER_TILE_SIZE;
275-
generateRenderMap();
283+
generateRenderMap();
276284
}
277-
278-
if (redrawMap)
279-
displayMap(tileSize);
285+
displayMap(tileSize);
280286
}
281287

282288
/**

lib/maps/src/renderMaps.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ void generateRenderMap()
9494
createMapScrSprites();
9595

9696
#ifdef SPI_SHARED
97+
//tft.waitDisplay();
9798
tft.endTransaction();
98-
tft.waitDisplay();
9999
tft.releaseBus();
100100
initSD();
101101
#endif
@@ -136,13 +136,11 @@ void generateRenderMap()
136136
oldMapTile.zoom = currentMapTile.zoom;
137137
oldMapTile.tilex = currentMapTile.tilex;
138138
oldMapTile.tiley = currentMapTile.tiley;
139-
redrawMap = true;
140139
}
141140

142141
#ifdef SPI_SHARED
143142
SD.end();
144143
tft.initBus();
145-
tft.beginTransaction();
146144
#endif
147145

148146
log_v("TILE: %s", oldMapTile.file);

lib/panel/ILI9488_FT5x06_SPI.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ class LGFX : public lgfx::LGFX_Device
4646
#endif
4747
cfg.spi_mode = 0;
4848
cfg.freq_write = 79999999;
49-
cfg.freq_read = 40000000;
49+
cfg.freq_read = 27000000;
5050
cfg.spi_3wire = false;
5151
cfg.use_lock = false;
52-
cfg.dma_channel = 2;
52+
cfg.dma_channel = SPI_DMA_CH_AUTO;
5353
cfg.pin_sclk = TFT_SPI_SCLK;
5454
cfg.pin_mosi = TFT_SPI_MOSI;
5555
cfg.pin_miso = TFT_SPI_MISO;
@@ -72,7 +72,7 @@ class LGFX : public lgfx::LGFX_Device
7272
cfg.offset_rotation = 0;
7373
cfg.dummy_read_pixel = 8;
7474
cfg.dummy_read_bits = 1;
75-
cfg.readable = false;
75+
cfg.readable = true;
7676
cfg.invert = TFT_INVERT;
7777
cfg.rgb_order = false;
7878
cfg.dlen_16bit = false;

lib/storage/storage.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ void initSD()
2525
digitalWrite(SD_CS,LOW);
2626

2727
#ifdef SPI_SHARED
28+
SD.end();
2829
SDInitOk = SD.begin(SD_CS);
2930
#endif
3031
#ifndef SPI_SHARED

src/main.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ void setup()
9494
#endif
9595
initLvglTask();
9696

97-
9897
#ifndef DISABLE_CLI
9998
initCLI();
10099
initCLITask();

0 commit comments

Comments
 (0)