From 09f9581e76acf9e5ff32b1b1c242104bdbbe64ef Mon Sep 17 00:00:00 2001 From: cyberman54 Date: Sat, 12 Nov 2022 19:34:18 +0100 Subject: [PATCH] display defines restructured for t_dongle_display --- include/display.h | 77 +++++++++++++++++----------------- src/display.cpp | 10 ++--- src/hal/ttgotdongledisplays3.h | 4 +- 3 files changed, 45 insertions(+), 46 deletions(-) diff --git a/include/display.h b/include/display.h index 926cf90e..60e7b8d5 100644 --- a/include/display.h +++ b/include/display.h @@ -8,19 +8,30 @@ #include "power.h" #include "timekeeper.h" -#if (HAS_DISPLAY) == 1 -#include -extern ONE_BIT_DISPLAY *dp; -#elif (HAS_DISPLAY) == 2 -#include -extern BB_SPI_LCD *dp; +// Settings for all display types +#ifndef MY_DISPLAY_FLIP +#define MY_DISPLAY_FLIP 0 +#endif +#ifndef MY_DISPLAY_WIDTH +#define MY_DISPLAY_WIDTH 128 +#endif +#ifndef MY_DISPLAY_HEIGHT +#define MY_DISPLAY_HEIGHT 64 +#endif +#ifndef MY_DISPLAY_FIRSTLINE +#define MY_DISPLAY_FIRSTLINE 0 #endif #define DISPLAY_PAGES (7) // number of paxcounter display pages #define PLOTBUFFERSIZE (MY_DISPLAY_WIDTH * MY_DISPLAY_HEIGHT / 8) +#define QR_VERSION 3 // 29 x 29px -// settings for OLED display library +// Settings for OLED display library #if (HAS_DISPLAY) == 1 + +#include +extern ONE_BIT_DISPLAY *dp; + #define MY_FONT_SMALL FONT_6x8 #define MY_FONT_NORMAL FONT_8x8 #define MY_FONT_LARGE FONT_16x32 @@ -30,17 +41,17 @@ extern BB_SPI_LCD *dp; #ifndef MY_DISPLAY_RST #define MY_DISPLAY_RST NOT_A_PIN #endif - #ifdef MY_DISPLAY_ADDR #define OLED_ADDR MY_DISPLAY_ADDR #else #define OLED_ADDR -1 #endif - #ifndef OLED_FREQUENCY #define OLED_FREQUENCY 400000L #endif - +#ifndef OLED_TYPE +#define OLED_TYPE OLED_128x64 +#endif #ifndef MY_DISPLAY_FGCOLOR #define MY_DISPLAY_FGCOLOR 1 // OLED_WHITE #endif @@ -48,19 +59,15 @@ extern BB_SPI_LCD *dp; #define MY_DISPLAY_BGCOLOR 0 // OLED_BLACK #endif -// settings for TFT display library -#elif (HAS_DISPLAY) == 2 +// Settings for TFT display library +#elif (HAS_DISPLAY) > 1 -#define MY_FONT_SMALL 2 -#define MY_FONT_NORMAL 2 -#define MY_FONT_LARGE 2 -#define MY_FONT_STRETCHED 2 -#define MY_DISPLAY_FIRSTLINE 30 +#include +extern BB_SPI_LCD *dp; #ifndef TFT_FREQUENCY #define TFT_FREQUENCY 400000L #endif - #ifndef MY_DISPLAY_FGCOLOR #define MY_DISPLAY_FGCOLOR TFT_YELLOW #endif @@ -70,31 +77,25 @@ extern BB_SPI_LCD *dp; #endif -// setup display hardware type, default is OLED 128x64 -#ifndef OLED_TYPE -#define OLED_TYPE OLED_128x64 +// Fonts for large TFT display library +#if (HAS_DISPLAY) == 2 +#define MY_FONT_SMALL FONT_12x16 +#define MY_FONT_NORMAL FONT_12x16 +#define MY_FONT_LARGE FONT_12x16 +#define MY_FONT_STRETCHED FONT_12x16 +#define MY_DISPLAY_FIRSTLINE 30 #endif -#ifndef MY_DISPLAY_FLIP -#define MY_DISPLAY_FLIP 0 +// Settings for small TFT display library +#if (HAS_DISPLAY) == 3 +#define MY_FONT_SMALL FONT_6x8 +#define MY_FONT_NORMAL FONT_8x8 +#define MY_FONT_LARGE FONT_16x16 +#define MY_FONT_STRETCHED FONT_12x16 +#define MY_DISPLAY_FIRSTLINE 30 #endif -#ifndef MY_DISPLAY_WIDTH -#define MY_DISPLAY_WIDTH 128 // Width in pixels of OLED-display, must be 32X -#endif -#ifndef MY_DISPLAY_HEIGHT -#define MY_DISPLAY_HEIGHT 64 // Height in pixels of OLED-display, must be 64X -#endif - -#ifndef MY_DISPLAY_FIRSTLINE -#define MY_DISPLAY_FIRSTLINE 0 -#endif - -// settings for qr code generator -#define QR_VERSION 3 // 29 x 29px - const uint8_t QR_SCALEFACTOR = (MY_DISPLAY_HEIGHT - 4) / 29; // 4px borderlines - extern uint8_t DisplayIsOn; extern hw_timer_t *displayIRQ; extern uint8_t volatile channel; // wifi channel rotation counter diff --git a/src/display.cpp b/src/display.cpp index 7fc5b53d..dcd600cc 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -49,7 +49,7 @@ static QRCode qrcode; #ifdef HAS_DISPLAY #if (HAS_DISPLAY) == 1 ONE_BIT_DISPLAY *dp = NULL; -#elif (HAS_DISPLAY) == 2 +#elif (HAS_DISPLAY) > 1 BB_SPI_LCD *dp = NULL; #else #error Unknown display type specified in hal file @@ -68,7 +68,7 @@ void dp_setup(int contrast) { dp->setRotation( MY_DISPLAY_FLIP ? 2 : 0); // 0 = no rotation, 1 = 90°, 2 = 180°, 3 = 270° -#elif (HAS_DISPLAY) == 2 // TFT LCD +#elif (HAS_DISPLAY) > 1 // TFT LCD dp = new BB_SPI_LCD; dp->begin(TFT_TYPE); @@ -421,7 +421,7 @@ void dp_clear(void) { void dp_contrast(uint8_t contrast) { #if (HAS_DISPLAY) == 1 dp->setContrast(contrast); -#elif (HAS_DISPLAY) == 2 +#elif (HAS_DISPLAY) > 1 // to do: gamma correction for TFT #endif } @@ -429,7 +429,7 @@ void dp_contrast(uint8_t contrast) { void dp_power(uint8_t screenon) { #if (HAS_DISPLAY) == 1 dp->setPower(screenon); -#elif (HAS_DISPLAY) == 2 +#elif (HAS_DISPLAY) > 1 // to come #endif } @@ -438,7 +438,7 @@ void dp_shutdown(void) { #if (HAS_DISPLAY) == 1 dp->setPower(false); delay(DISPLAYREFRESH_MS / 1000 * 1.1); -#elif (HAS_DISPLAY) == 2 +#elif (HAS_DISPLAY) > 1 // to come #endif } diff --git a/src/hal/ttgotdongledisplays3.h b/src/hal/ttgotdongledisplays3.h index 9ee1ba60..b510e387 100644 --- a/src/hal/ttgotdongledisplays3.h +++ b/src/hal/ttgotdongledisplays3.h @@ -18,12 +18,10 @@ #define SDCARD_SLOTWIDTH 4 // dongle has 4 line interface #define SDCARD_SLOTCONFIG { .clk = GPIO_NUM_12, .cmd = GPIO_NUM_16, .d0 = GPIO_NUM_14, .d1 = GPIO_NUM_17, .d2 = GPIO_NUM_21, .d3 = GPIO_NUM_18, .cd = SDMMC_SLOT_NO_CD, .wp = SDMMC_SLOT_NO_WP, .width = 4, .flags = 0, } -#define HAS_DISPLAY 2 // TFT-LCD +#define HAS_DISPLAY 3 // TFT-LCD #define TFT_TYPE DISPLAY_T_DONGLE_S3 #define MY_DISPLAY_FLIP 1 // use if display is rotated #define MY_DISPLAY_WIDTH 80 #define MY_DISPLAY_HEIGHT 160 - - #endif \ No newline at end of file