Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions lib/lilka/src/lilka/display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include "default_splash.h"
#include "spi.h"
#include <Preferences.h>
#include "serial.h"
#include "fmath.h"
#include "buzzer.h"
Expand Down Expand Up @@ -37,12 +38,19 @@ Display::Display() :
}

void Display::begin() {
serial.log("initializing display");
#ifdef LILKA_BREADBOARD
Arduino_ST7789::begin(40000000);
#else
Arduino_ST7789::begin(80000000);
#endif
// Read display frequency and SPI mode from NVS
Preferences prefs;
prefs.begin(LILKA_SPI_NVS_NAMESPACE, true);
uint32_t displayFrequency = prefs.getUInt(LILKA_SPI_NVS_DISPLAY_FREQUENCY_KEY, LILKA_DISPLAY_FREQUENCY);
uint8_t displayMode = prefs.getUChar(LILKA_SPI_NVS_DISPLAY_MODE_KEY, LILKA_DISPLAY_SPI_MODE);
prefs.end();

if (displayMode > SPI_MODE3) displayMode = LILKA_DISPLAY_SPI_MODE;

serial.log("initializing display at %d Hz, SPI mode %d", displayFrequency, displayMode);
// Arduino_ST7789::begin() forces SPI_MODE3, so call Arduino_TFT::begin() with our own data mode
_override_datamode = displayMode;
Arduino_TFT::begin(displayFrequency);
setFont(FONT_10x20);
setUTF8Print(true);
serial.log("display ok");
Expand Down
8 changes: 8 additions & 0 deletions lib/lilka/src/lilka/display.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@
#include <Arduino_GFX_Library.h>
#include <U8g2lib.h>

#ifdef LILKA_BREADBOARD
# define LILKA_DISPLAY_FREQUENCY 40000000
#else
# define LILKA_DISPLAY_FREQUENCY 80000000
#endif
// ST7789 потребує SPI_MODE3 на ESP32 (див. Arduino_ST7789::begin)
#define LILKA_DISPLAY_SPI_MODE SPI_MODE3

namespace lilka {

// Рекомендовані шрифти для використання з дисплеєм.
Expand Down
6 changes: 4 additions & 2 deletions lib/lilka/src/lilka/spi.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@

#include <SPI.h>

#define LILKA_SPI_NVS_NAMESPACE "spi"
#define LILKA_SPI_NVS_SD_FREQUENCY_KEY "sdFrequency"
#define LILKA_SPI_NVS_NAMESPACE "spi"
#define LILKA_SPI_NVS_SD_FREQUENCY_KEY "sdFrequency"
#define LILKA_SPI_NVS_DISPLAY_FREQUENCY_KEY "dispFrequency"
#define LILKA_SPI_NVS_DISPLAY_MODE_KEY "dispMode"

namespace lilka {

Expand Down
Loading