2020-08-17 20:47:05 +00:00
|
|
|
#include "configuration.h"
|
|
|
|
|
2020-08-17 21:06:31 +00:00
|
|
|
#ifdef ST7735_CS
|
|
|
|
|
2020-08-28 22:06:52 +00:00
|
|
|
#include "TFT.h"
|
2020-08-17 20:47:05 +00:00
|
|
|
#include <SPI.h>
|
|
|
|
#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
|
|
|
|
|
2020-08-28 22:06:52 +00:00
|
|
|
|
|
|
|
TFTDisplay::TFTDisplay(uint8_t address, int sda, int scl)
|
|
|
|
{
|
|
|
|
setGeometry(
|
|
|
|
GEOMETRY_128_64); // FIXME - currently we lie and claim 128x64 because I'm not yet sure other resolutions will work
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write the buffer to the display memory
|
|
|
|
void TFTDisplay::display(void)
|
|
|
|
{
|
|
|
|
// FIXME - only draw bits have changed (use backbuf similar to the other displays)
|
|
|
|
tft.drawBitmap(0, 0, buffer, 128, 64, TFT_YELLOW, TFT_BLACK);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Send a command to the display (low level function)
|
|
|
|
void TFTDisplay::sendCommand(uint8_t com)
|
|
|
|
{
|
|
|
|
(void)com;
|
|
|
|
// Drop all commands to device (we just update the buffer)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Connect to the display
|
|
|
|
bool TFTDisplay::connect()
|
2020-08-17 20:47:05 +00:00
|
|
|
{
|
2020-08-28 21:24:22 +00:00
|
|
|
DEBUG_MSG("Doing TFT init\n");
|
|
|
|
|
|
|
|
#ifdef ST7735_BACKLIGHT_EN
|
|
|
|
digitalWrite(ST7735_BACKLIGHT_EN, HIGH);
|
|
|
|
pinMode(ST7735_BACKLIGHT_EN, OUTPUT);
|
|
|
|
#endif
|
|
|
|
|
2020-08-17 20:47:05 +00:00
|
|
|
tft.init();
|
2020-08-28 22:06:52 +00:00
|
|
|
tft.setRotation(3); // Orient horizontal and wide underneath the silkscreen name label
|
|
|
|
tft.fillScreen(TFT_BLUE);
|
|
|
|
// tft.drawRect(0, 0, 40, 10, TFT_PURPLE); // wide rectangle in upper left
|
|
|
|
|
|
|
|
return true;
|
2020-08-17 20:47:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|