Browse Source

Change the screen display from pointer to reference

pull/3032/head
Quency-D 1 week ago
parent
commit
8c0ba1e990
  1. 27
      src/helpers/ui/NV3001BDisplay.cpp
  2. 8
      src/helpers/ui/NV3001BDisplay.h
  3. 4
      variants/heltec_rc52/variant.h

27
src/helpers/ui/NV3001BDisplay.cpp

@ -203,25 +203,25 @@ static void writeOptionalPin(int pin, int level) {
}
void NV3001BDisplay::writeCommand(uint8_t cmd) {
spi->beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
spi.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
digitalWrite(PIN_TFT_DC, LOW);
digitalWrite(PIN_TFT_CS, LOW);
spi->transfer(cmd);
spi.transfer(cmd);
digitalWrite(PIN_TFT_CS, HIGH);
spi->endTransaction();
spi.endTransaction();
}
void NV3001BDisplay::writeBytes(const uint8_t* data, size_t len) {
if (!data || len == 0) return;
spi->beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
spi.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
digitalWrite(PIN_TFT_DC, HIGH);
digitalWrite(PIN_TFT_CS, LOW);
for (size_t i = 0; i < len; i++) {
spi->transfer(data[i]);
spi.transfer(data[i]);
}
digitalWrite(PIN_TFT_CS, HIGH);
spi->endTransaction();
spi.endTransaction();
}
void NV3001BDisplay::writeCommandData(uint8_t cmd, const uint8_t* data, size_t len) {
@ -253,15 +253,15 @@ void NV3001BDisplay::writeColor(uint16_t rgb, uint32_t count) {
uint8_t hi = rgb >> 8;
uint8_t lo = rgb & 0xff;
spi->beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
spi.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
digitalWrite(PIN_TFT_DC, HIGH);
digitalWrite(PIN_TFT_CS, LOW);
while (count--) {
spi->transfer(hi);
spi->transfer(lo);
spi.transfer(hi);
spi.transfer(lo);
}
digitalWrite(PIN_TFT_CS, HIGH);
spi->endTransaction();
spi.endTransaction();
}
void NV3001BDisplay::initPanel() {
@ -416,7 +416,6 @@ void NV3001BDisplay::drawChar(int x, int y, char ch) {
bool NV3001BDisplay::begin() {
if (is_on) return true;
if (!spi) return false;
if (periph_power) periph_power->claim();
@ -429,11 +428,11 @@ bool NV3001BDisplay::begin() {
delay(20);
#if defined(NRF52_PLATFORM)
spi->begin();
spi.begin();
#elif defined(ESP_PLATFORM) || defined(ESP32_PLATFORM)
spi->begin(PIN_TFT_SCL, PIN_TFT_MISO, PIN_TFT_SDA, PIN_TFT_CS);
spi.begin(PIN_TFT_SCL, PIN_TFT_MISO, PIN_TFT_SDA, PIN_TFT_CS);
#else
spi->begin();
spi.begin();
#endif
if (PIN_TFT_RST >= 0) {
pinMode(PIN_TFT_RST, OUTPUT);

8
src/helpers/ui/NV3001BDisplay.h

@ -27,7 +27,7 @@ class NV3001BDisplay : public DisplayDriver {
#endif
SPIClass owned_spi;
#endif
SPIClass* spi;
SPIClass& spi;
RefCountedDigitalPin* periph_power;
bool is_on = false;
uint16_t color = 0xffff;
@ -48,14 +48,14 @@ public:
#if defined(ESP_PLATFORM) || defined(ESP32_PLATFORM)
NV3001BDisplay(RefCountedDigitalPin* power = nullptr) :
DisplayDriver(NV3001B_LOGICAL_WIDTH, NV3001B_LOGICAL_HEIGHT),
owned_spi(NV3001B_SPI_HOST), spi(&owned_spi), periph_power(power) { }
owned_spi(NV3001B_SPI_HOST), spi(owned_spi), periph_power(power) { }
NV3001BDisplay(SPIClass* displaySpi, RefCountedDigitalPin* power = nullptr) :
DisplayDriver(NV3001B_LOGICAL_WIDTH, NV3001B_LOGICAL_HEIGHT),
owned_spi(NV3001B_SPI_HOST), spi(displaySpi ? displaySpi : &owned_spi), periph_power(power) { }
owned_spi(NV3001B_SPI_HOST), spi(displaySpi ? *displaySpi : owned_spi), periph_power(power) { }
#else
NV3001BDisplay(SPIClass* displaySpi = &SPI, RefCountedDigitalPin* power = nullptr) :
DisplayDriver(NV3001B_LOGICAL_WIDTH, NV3001B_LOGICAL_HEIGHT), spi(displaySpi), periph_power(power) { }
DisplayDriver(NV3001B_LOGICAL_WIDTH, NV3001B_LOGICAL_HEIGHT), spi(displaySpi ? *displaySpi : SPI), periph_power(power) { }
#endif
bool begin();

4
variants/heltec_rc52/variant.h

@ -53,8 +53,8 @@ extern "C" {
#define SENSOR_RST_PIN (32 + 15)
#define PIN_GPS_TX (0 + 8) // GPS TX toward MCU RX
#define PIN_GPS_RX (0 + 7) // MCU TX toward GPS RX
#define PIN_GPS_TX (0 + 8)
#define PIN_GPS_RX (0 + 7)
#define PIN_GPS_EN (32 + 9)
#define PIN_GPS_PPS (32 + 1)
#define PIN_GPS_RESET (32 + 6)

Loading…
Cancel
Save