sforkowany z mirror/meshtastic-firmware
TFT kinda correct now - but slow because of bit banging
rodzic
e049eac38a
commit
7f214ffbb0
|
@ -1,25 +1,33 @@
|
||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
|
|
||||||
#ifdef ST7735_CS
|
#ifdef ST7735_CS
|
||||||
|
|
||||||
#include "TFT.h"
|
#include "TFT.h"
|
||||||
|
#include "graphics/configs.h"
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
#include <TFT_eSPI.h> // Graphics and font library for ST7735 driver chip
|
#include <TFT_eSPI.h> // Graphics and font library for ST7735 driver chip
|
||||||
|
|
||||||
TFT_eSPI tft = TFT_eSPI(); // Invoke library, pins defined in User_Setup.h
|
TFT_eSPI tft = TFT_eSPI(); // Invoke library, pins defined in User_Setup.h
|
||||||
|
|
||||||
|
|
||||||
TFTDisplay::TFTDisplay(uint8_t address, int sda, int scl)
|
TFTDisplay::TFTDisplay(uint8_t address, int sda, int scl)
|
||||||
{
|
{
|
||||||
setGeometry(
|
setGeometry(GEOMETRY_128_64); // FIXME - currently we lie and claim 128x64 because I'm not yet sure other resolutions will
|
||||||
GEOMETRY_128_64); // FIXME - currently we lie and claim 128x64 because I'm not yet sure other resolutions will work
|
// work ie GEOMETRY_RAWMODE
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write the buffer to the display memory
|
// Write the buffer to the display memory
|
||||||
void TFTDisplay::display(void)
|
void TFTDisplay::display(void)
|
||||||
{
|
{
|
||||||
// FIXME - only draw bits have changed (use backbuf similar to the other displays)
|
// FIXME - only draw bits have changed (use backbuf similar to the other displays)
|
||||||
tft.drawBitmap(0, 0, buffer, 128, 64, TFT_YELLOW, TFT_BLACK);
|
// tft.drawBitmap(0, 0, buffer, 128, 64, TFT_YELLOW, TFT_BLACK);
|
||||||
|
for (uint8_t y = 0; y < SCREEN_HEIGHT; y++) {
|
||||||
|
for (uint8_t x = 0; x < SCREEN_WIDTH; x++) {
|
||||||
|
|
||||||
|
// get src pixel in the page based ordering the OLED lib uses FIXME, super inefficent
|
||||||
|
auto b = buffer[x + (y / 8) * SCREEN_WIDTH];
|
||||||
|
auto isset = b & (1 << (y & 7));
|
||||||
|
tft.drawPixel(x, y, isset ? TFT_WHITE : TFT_BLACK);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send a command to the display (low level function)
|
// Send a command to the display (low level function)
|
||||||
|
@ -41,7 +49,7 @@ bool TFTDisplay::connect()
|
||||||
|
|
||||||
tft.init();
|
tft.init();
|
||||||
tft.setRotation(3); // Orient horizontal and wide underneath the silkscreen name label
|
tft.setRotation(3); // Orient horizontal and wide underneath the silkscreen name label
|
||||||
tft.fillScreen(TFT_BLUE);
|
// tft.fillScreen(TFT_BLUE);
|
||||||
// tft.drawRect(0, 0, 40, 10, TFT_PURPLE); // wide rectangle in upper left
|
// tft.drawRect(0, 0, 40, 10, TFT_PURPLE); // wide rectangle in upper left
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -75,8 +75,8 @@ bool SX1262Interface::reconfigure()
|
||||||
assert(err == ERR_NONE);
|
assert(err == ERR_NONE);
|
||||||
|
|
||||||
// Hmm - seems to lower SNR when the signal levels are high. Leaving off for now...
|
// Hmm - seems to lower SNR when the signal levels are high. Leaving off for now...
|
||||||
//err = lora.setRxGain(true);
|
// err = lora.setRxGain(true);
|
||||||
//assert(err == ERR_NONE);
|
// assert(err == ERR_NONE);
|
||||||
|
|
||||||
err = lora.setSyncWord(syncWord);
|
err = lora.setSyncWord(syncWord);
|
||||||
assert(err == ERR_NONE);
|
assert(err == ERR_NONE);
|
||||||
|
|
|
@ -117,7 +117,9 @@ static const uint8_t SCK = PIN_SPI_SCK;
|
||||||
#define I2C_ADDR_BQ27441 0x55 // Battery gauge
|
#define I2C_ADDR_BQ27441 0x55 // Battery gauge
|
||||||
|
|
||||||
// CUSTOM GPIOs the SX1262
|
// CUSTOM GPIOs the SX1262
|
||||||
#define SX1262_CS (32)
|
// #define SX1262_CS (32)
|
||||||
|
#define USE_SIM_RADIO
|
||||||
|
#define USE_SEGGER
|
||||||
#define SX1262_DIO1 (29)
|
#define SX1262_DIO1 (29)
|
||||||
#define SX1262_DIO2 (30)
|
#define SX1262_DIO2 (30)
|
||||||
#define SX1262_BUSY (33) // Supposed to be P0.18 but because of reworks, now on P0.31 (18)
|
#define SX1262_BUSY (33) // Supposed to be P0.18 but because of reworks, now on P0.31 (18)
|
||||||
|
@ -130,7 +132,7 @@ static const uint8_t SCK = PIN_SPI_SCK;
|
||||||
#define SX1262_E22 // Indicates this SX1262 is inside of an ebyte E22 module and special config should be done for that
|
#define SX1262_E22 // Indicates this SX1262 is inside of an ebyte E22 module and special config should be done for that
|
||||||
|
|
||||||
#define ST7735_RESET (11) // Output
|
#define ST7735_RESET (11) // Output
|
||||||
#define ST7735_CS (12)
|
#define ST7735_CS (12)
|
||||||
#define ST7735_BACKLIGHT_EN (13)
|
#define ST7735_BACKLIGHT_EN (13)
|
||||||
#define ST7735_RS (9)
|
#define ST7735_RS (9)
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue