display support reworked, prepared for TFT/LCD
This commit is contained in:
1 parent
b9481f459d
commit
4029d545a2
30 files changed
+335
-206
No files matched your search
+83
-30
@@ -3,51 +3,104 @@
|
||||
|
||||
#include "cyclic.h"
|
||||
#include "qrcode.h"
|
||||
|
||||
#if (HAS_DISPLAY) == 1
|
||||
#include <ss_oled.h>
|
||||
#elif (HAS_DISPLAY) == 2
|
||||
#include <bb_spi_lcd.h>
|
||||
#else
|
||||
#error Unknown display type
|
||||
#endif
|
||||
|
||||
#define DISPLAY_PAGES (7) // number of paxcounter display pages
|
||||
|
||||
// settings for oled display library
|
||||
// settings for display library
|
||||
#define USE_BACKBUFFER 1
|
||||
#define MY_OLED OLED_128x64
|
||||
#ifdef MY_OLED_ADDR
|
||||
#define OLED_ADDR MY_OLED_ADDR
|
||||
#else
|
||||
#define OLED_ADDR -1
|
||||
#endif
|
||||
#define OLED_INVERT 0
|
||||
#define USE_HW_I2C 1
|
||||
|
||||
#ifndef DISPLAY_FLIP
|
||||
#define DISPLAY_FLIP 0
|
||||
// setup display hardware type, default is OLED 128x64
|
||||
#ifndef MY_DISPLAY_TYPE
|
||||
#define MY_DISPLAY_TYPE OLED_128x64
|
||||
#endif
|
||||
|
||||
#ifdef MY_DISPLAY_ADDR
|
||||
#define OLED_ADDR MY_DISPLAY_ADDR
|
||||
#else
|
||||
#define OLED_ADDR -1
|
||||
#endif
|
||||
#ifndef MY_DISPLAY_INVERT
|
||||
#define MY_DISPLAY_INVERT 0
|
||||
#endif
|
||||
|
||||
#ifndef USW_HW_I2C
|
||||
#define USE_HW_I2C 1
|
||||
#endif
|
||||
|
||||
#ifndef MY_DISPLAY_FLIP
|
||||
#define MY_DISPLAY_FLIP 0
|
||||
#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
|
||||
|
||||
// some RGB color definitions
|
||||
#define Black 0x0000 /* 0, 0, 0 */
|
||||
#define Navy 0x000F /* 0, 0, 128 */
|
||||
#define DarkGreen 0x03E0 /* 0, 128, 0 */
|
||||
#define DarkCyan 0x03EF /* 0, 128, 128 */
|
||||
#define Maroon 0x7800 /* 128, 0, 0 */
|
||||
#define Purple 0x780F /* 128, 0, 128 */
|
||||
#define Olive 0x7BE0 /* 128, 128, 0 */
|
||||
#define LightGrey 0xC618 /* 192, 192, 192 */
|
||||
#define DarkGrey 0x7BEF /* 128, 128, 128 */
|
||||
#define Blue 0x001F /* 0, 0, 255 */
|
||||
#define Green 0x07E0 /* 0, 255, 0 */
|
||||
#define Cyan 0x07FF /* 0, 255, 255 */
|
||||
#define Red 0xF800 /* 255, 0, 0 */
|
||||
#define Magenta 0xF81F /* 255, 0, 255 */
|
||||
#define Yellow 0xFFE0 /* 255, 255, 0 */
|
||||
#define White 0xFFFF /* 255, 255, 255 */
|
||||
#define Orange 0xFD20 /* 255, 165, 0 */
|
||||
#define GreenYellow 0xAFE5 /* 173, 255, 47 */
|
||||
#define Pink 0xF81F
|
||||
|
||||
#ifndef MY_DISPLAY_FGCOLOR
|
||||
#define MY_DISPLAY_FGCOLOR White
|
||||
#endif
|
||||
#ifndef MY_DISPLAY_BGCOLOR
|
||||
#define MY_DISPLAY_BGCOLOR Black
|
||||
#endif
|
||||
|
||||
// settings for qr code generator
|
||||
#define QR_VERSION 3 // 29 x 29px
|
||||
#define QR_SCALEFACTOR 2 // 29 -> 58x < 64px
|
||||
|
||||
// settings for curve plotter
|
||||
#define DISPLAY_WIDTH 128 // Width in pixels of OLED-display, must be 32X
|
||||
#define DISPLAY_HEIGHT 64 // Height in pixels of OLED-display, must be 64X
|
||||
|
||||
extern uint8_t DisplayIsOn, displaybuf[];
|
||||
|
||||
void setup_display(int contrast = 0);
|
||||
void refreshTheDisplay(bool nextPage = false);
|
||||
void init_display(bool verbose = false);
|
||||
void shutdown_display(void);
|
||||
void draw_page(time_t t, bool nextpage);
|
||||
void dp_setup(int contrast = 0);
|
||||
void dp_refresh(bool nextPage = false);
|
||||
void dp_init(bool verbose = false);
|
||||
void dp_shutdown(void);
|
||||
void dp_drawPage(time_t t, bool nextpage);
|
||||
void dp_printf(uint16_t x, uint16_t y, uint8_t font, uint8_t inv,
|
||||
const char *format, ...);
|
||||
void dp_dump(uint8_t *pBuffer);
|
||||
void dp_contrast(uint8_t contrast);
|
||||
void dp_clear(void);
|
||||
void dp_power(uint8_t screenon);
|
||||
void dp_printqr(uint16_t offset_x, uint16_t offset_y, const char *Message);
|
||||
void oledfillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
|
||||
uint8_t bRender);
|
||||
void oledScrollBufferHorizontal(uint8_t *buf, const uint16_t width,
|
||||
const uint16_t height, bool left = true);
|
||||
void oledScrollBufferVertical(uint8_t *buf, const uint16_t width,
|
||||
const uint16_t height, int offset = 0);
|
||||
int oledDrawPixel(uint8_t *buf, const uint16_t x, const uint16_t y,
|
||||
const uint8_t dot);
|
||||
void oledPlotCurve(uint16_t count, bool reset);
|
||||
void oledRescaleBuffer(uint8_t *buf, const int factor);
|
||||
void dp_fillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
|
||||
uint8_t bRender);
|
||||
void dp_scrollHorizontal(uint8_t *buf, const uint16_t width,
|
||||
const uint16_t height, bool left = true);
|
||||
void dp_scrollVertical(uint8_t *buf, const uint16_t width,
|
||||
const uint16_t height, int offset = 0);
|
||||
int dp_drawPixel(uint8_t *buf, const uint16_t x, const uint16_t y,
|
||||
const uint8_t dot);
|
||||
void dp_plotCurve(uint16_t count, bool reset);
|
||||
void dp_rescaleBuffer(uint8_t *buf, const int factor);
|
||||
|
||||
#endif
|
||||
@@ -11,6 +11,14 @@
|
||||
#define MCP_24AA02E64_PRIMARY_ADDRESS (0x50)
|
||||
#define QUECTEL_GPS_PRIMARY_ADDRESS (0x10)
|
||||
|
||||
#ifndef MY_DISPLAY_SDA
|
||||
#define MY_DISPLAY_SDA SDA
|
||||
#endif
|
||||
|
||||
#ifndef MY_DISPLAY_SCL
|
||||
#define MY_DISPLAY_SCL SCL
|
||||
#endif
|
||||
|
||||
void i2c_init(void);
|
||||
void i2c_deinit(void);
|
||||
int i2c_scan(void);
|
||||
|
||||
Reference in new issue
Block a user