LCDGFX LCD display driver
2.0.1
This library is developed to control SSD1306/SSD1325/SSD1327/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays
|
#include <display.h>
Public Member Functions | |
void | putPixel (const NanoPoint &p) |
void | drawLine (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2) |
void | drawLine (const NanoRect &rect) |
void | drawRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2) |
void | drawRect (const NanoRect &rect) |
void | fillRect (const NanoRect &rect) |
void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 1 > &canvas) __attribute__((noinline)) |
void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 4 > &canvas) __attribute__((noinline)) |
void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 8 > &canvas) __attribute__((noinline)) |
void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 16 > &canvas) __attribute__((noinline)) |
void | printFixedPgm (lcdint_t xpos, lcdint_t y, const char *ch, EFontStyle style=STYLE_NORMAL) __attribute__((noinline)) |
void | createMenu (SAppMenu *menu, const char **items, uint8_t count) |
void | showMenu (SAppMenu *menu) |
void | showMenuSmooth (SAppMenu *menu) |
void | updateMenu (SAppMenu *menu) |
void | updateMenuSmooth (SAppMenu *menu) |
uint8_t | menuSelection (SAppMenu *menu) |
void | menuDown (SAppMenu *menu) |
void | menuUp (SAppMenu *menu) |
void | drawProgressBar (int8_t progress) |
void | drawWindow (lcdint_t x, lcdint_t y, lcduint_t width, lcduint_t height, const char *caption, bool blank) |
Protected Member Functions | |
virtual void | begin ()=0 |
virtual void | end ()=0 |
NanoCanvasOps provides operations for drawing in memory buffer. Depending on BPP argument, this class can work with 1,8,16-bit canvas areas.
|
protectedpure virtual |
Initializes interface and display
Implemented in DisplaySSD1306_128x64_I2C, DisplaySSD1306_128x64_SPI, DisplaySSD1331_96x64x16_SPI, DisplaySSD1306_128x64< I >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformSpi > >, DisplaySSD1331_96x64x16< I >, DisplaySSD1331_96x64x16< InterfaceSSD1331< PlatformSpi > >, DisplaySH1106_128x64_I2C, DisplaySSD1306_128x32_I2C, DisplayILI9341_128x160x16_SPI, DisplaySSD1331x16< I >, DisplaySSD1331x16< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x160x16_SPI, DisplayST7735_128x160x16_SPI, DisplaySH1106_128x64_SPI, DisplaySSD1306_128x32_SPI, DisplayILI9341_128x160x16< I >, DisplayILI9341_128x160x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163_128x160x16< I >, DisplaySSD1331_96x64x8_SPI, DisplayST7735_128x160x16< I >, DisplayIL9163_128x160x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x160x16< InterfaceST7735< PlatformSpi > >, DisplaySSD1325_128x64_I2C, DisplaySSD1327_128x128_I2C, DisplaySH1106_128x64< I >, DisplaySH1106_128x64< InterfaceSH1106< PlatformSpi > >, DisplaySH1106_128x64< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306_128x32< I >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16_SPI, DisplayIL9163_128x128x16_SPI, DisplayST7735_128x128x16_SPI, DisplaySSD1331_96x64x8< I >, DisplaySSD1331_96x64x8< InterfaceSSD1331< PlatformSpi > >, DisplayPCD8544_84x48_SPI, DisplaySH1106< I >, DisplaySH1106< InterfaceSH1106< PlatformSpi > >, DisplaySH1106< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306< I >, DisplaySSD1325_128x64_SPI, DisplaySSD1327_128x128_SPI, DisplaySSD1351_128x128x16_SPI, DisplaySSD1306< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16< I >, DisplayILI9341_240x320x16< InterfaceILI9341< PlatformSpi > >, DisplaySSD1331x8< I >, DisplaySSD1331x8< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x128x16< I >, DisplayST7735_128x128x16< I >, DisplayIL9163_128x128x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x128x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544_84x48< I >, DisplayPCD8544_84x48< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325_128x64< I >, DisplaySSD1327_128x128< I >, DisplaySSD1351_128x128x16< I >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformSpi > >, DisplaySSD1351_128x128x16< InterfaceSSD1351< PlatformSpi > >, DisplayILI9341x16< I >, DisplayILI9341x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163x16< I >, DisplayST7735x16< I >, DisplayIL9163x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544< I >, DisplayPCD8544< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325< I >, DisplaySSD1327< I >, DisplaySSD1351x16< I >, DisplaySSD1325< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformSpi > >, and DisplaySSD1351x16< InterfaceSSD1351< PlatformSpi > >.
void NanoDisplayOps< O, I >::createMenu | ( | SAppMenu * | menu, |
const char ** | items, | ||
uint8_t | count | ||
) |
Creates menu object with the provided list of menu items. List of menu items (strings) must exist all until menu object is no longer needed. Selection is set to the first item by default.
menu | pointer to SAppMenu structure |
items | array of null-termintated strings (located in SRAM) |
count | count of menu items in the array |
Definition at line 682 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
lcdint_t | y, | ||
NanoCanvasOps< 1 > & | canvas | ||
) |
Draws 1-bit canvas on lcd display
x | x position in pixels |
y | y position in pixels |
canvas | 1-bit canvas to draw on the screen. |
Definition at line 787 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
lcdint_t | y, | ||
NanoCanvasOps< 4 > & | canvas | ||
) |
Draws 4-bit canvas on lcd display
x | x position in pixels |
y | y position in pixels |
canvas | 4-bit canvas to draw on the screen. |
Definition at line 793 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
lcdint_t | y, | ||
NanoCanvasOps< 8 > & | canvas | ||
) |
Draws 8-bit canvas on lcd display
x | x position in pixels |
y | y position in pixels |
canvas | 8-bit canvas to draw on the screen. |
Definition at line 799 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
lcdint_t | y, | ||
NanoCanvasOps< 16 > & | canvas | ||
) |
Draws 16-bit canvas on lcd display
x | x position in pixels |
y | y position in pixels |
canvas | 16-bit canvas to draw on the screen. |
Definition at line 805 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawLine | ( | lcdint_t | x1, |
lcdint_t | y1, | ||
lcdint_t | x2, | ||
lcdint_t | y2 | ||
) |
Draws line
x1 | - position X |
y1 | - position Y |
x2 | - position X |
y2 | - position Y |
Definition at line 545 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawLine | ( | const NanoRect & | rect | ) |
Draws line
rect | - structure, describing rectangle area |
Definition at line 589 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawProgressBar | ( | int8_t | progress | ) |
Displays progress bar in the middle of the display.
progress | progress in range 0 - 100. |
Definition at line 811 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawRect | ( | lcdint_t | x1, |
lcdint_t | y1, | ||
lcdint_t | x2, | ||
lcdint_t | y2 | ||
) |
Draws rectangle
x1 | - position X |
y1 | - position Y |
x2 | - position X |
y2 | - position Y |
Definition at line 530 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawRect | ( | const NanoRect & | rect | ) |
Draws rectangle
rect | - structure, describing rectangle area |
Definition at line 539 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawWindow | ( | lcdint_t | x, |
lcdint_t | y, | ||
lcduint_t | width, | ||
lcduint_t | height, | ||
const char * | caption, | ||
bool | blank | ||
) |
Displays window at specified position and of specified size
x | x position in pixels from top-lef corner |
y | y position in pixels from top-lef corner |
width | width of window to draw. Can be 0. |
height | height of windows to draw. Can be 0. |
caption | text to display as caption |
blank | true if content inside window should be blanked |
Definition at line 842 of file ssd1306_common.inl.
|
protectedpure virtual |
closes interface to lcd display
Implemented in DisplaySSD1306_128x64_I2C, DisplaySSD1306_128x64_SPI, DisplaySSD1331_96x64x16_SPI, DisplaySSD1306_128x64< I >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformSpi > >, DisplaySSD1331_96x64x16< I >, DisplaySSD1331_96x64x16< InterfaceSSD1331< PlatformSpi > >, DisplaySH1106_128x64_I2C, DisplaySSD1306_128x32_I2C, DisplayILI9341_128x160x16_SPI, DisplaySSD1331x16< I >, DisplaySSD1331x16< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x160x16_SPI, DisplayST7735_128x160x16_SPI, DisplaySH1106_128x64_SPI, DisplaySSD1306_128x32_SPI, DisplayILI9341_128x160x16< I >, DisplayILI9341_128x160x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163_128x160x16< I >, DisplaySSD1331_96x64x8_SPI, DisplayST7735_128x160x16< I >, DisplayIL9163_128x160x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x160x16< InterfaceST7735< PlatformSpi > >, DisplaySSD1325_128x64_I2C, DisplaySSD1327_128x128_I2C, DisplaySH1106_128x64< I >, DisplaySH1106_128x64< InterfaceSH1106< PlatformSpi > >, DisplaySH1106_128x64< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306_128x32< I >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16_SPI, DisplayIL9163_128x128x16_SPI, DisplayST7735_128x128x16_SPI, DisplaySSD1331_96x64x8< I >, DisplaySSD1331_96x64x8< InterfaceSSD1331< PlatformSpi > >, DisplayPCD8544_84x48_SPI, DisplaySH1106< I >, DisplaySH1106< InterfaceSH1106< PlatformSpi > >, DisplaySH1106< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306< I >, DisplaySSD1325_128x64_SPI, DisplaySSD1327_128x128_SPI, DisplaySSD1351_128x128x16_SPI, DisplaySSD1306< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16< I >, DisplayILI9341_240x320x16< InterfaceILI9341< PlatformSpi > >, DisplaySSD1331x8< I >, DisplaySSD1331x8< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x128x16< I >, DisplayST7735_128x128x16< I >, DisplayIL9163_128x128x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x128x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544_84x48< I >, DisplayPCD8544_84x48< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325_128x64< I >, DisplaySSD1327_128x128< I >, DisplaySSD1351_128x128x16< I >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformSpi > >, DisplaySSD1351_128x128x16< InterfaceSSD1351< PlatformSpi > >, DisplayILI9341x16< I >, DisplayILI9341x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163x16< I >, DisplayST7735x16< I >, DisplayIL9163x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544< I >, DisplayPCD8544< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325< I >, DisplaySSD1327< I >, DisplaySSD1351x16< I >, DisplaySSD1325< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformSpi > >, and DisplaySSD1351x16< InterfaceSSD1351< PlatformSpi > >.
void NanoDisplayOps< O, I >::fillRect | ( | const NanoRect & | rect | ) |
Fills rectangle area
rect | - structure, describing rectangle area |
Definition at line 595 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::menuDown | ( | SAppMenu * | menu | ) |
Moves selection pointer down by 1 item. If there are no items below, it will set selection pointer to the first item. Use updateMenu() to refresh menu state on the display.
menu | pointer to SAppMenu structure |
Definition at line 761 of file ssd1306_common.inl.
uint8_t NanoDisplayOps< O, I >::menuSelection | ( | SAppMenu * | menu | ) |
Returns currently selected menu item. First item has zero-index.
menu | pointer to SAppMenu structure |
Definition at line 755 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::menuUp | ( | SAppMenu * | menu | ) |
Moves selection pointer up by 1 item. If selected item is the first one, then selection pointer will set to the last item in menu list. Use updateMenu() to refresh menu state on the display.
menu | pointer to SAppMenu structure |
Definition at line 774 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::printFixedPgm | ( | lcdint_t | xpos, |
lcdint_t | y, | ||
const char * | ch, | ||
EFontStyle | style = STYLE_NORMAL |
||
) |
Print text at specified position to canvas
xpos | position in pixels |
y | position in pixels |
ch | pointer to NULL-terminated string, located in flash |
style | specific font style to use |
Definition at line 601 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::putPixel | ( | const NanoPoint & | p | ) |
Draws pixel on specified position
p | - NanoPoint |
Definition at line 524 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::showMenu | ( | SAppMenu * | menu | ) |
Shows menu items on the display. If menu items cannot fit the display, the function provides scrolling.
menu | pointer to SAppMenu structure |
Definition at line 692 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::showMenuSmooth | ( | SAppMenu * | menu | ) |
Shows menu items on the display. If menu items cannot fit the display, the function provides scrolling. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.
menu | pointer to SAppMenu structure |
Definition at line 704 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::updateMenu | ( | SAppMenu * | menu | ) |
Updates menu items on the display. That is if selection is changed, the function will update only those areas, affected by the change.
menu | Pointer to SAppMenu structure |
Definition at line 716 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::updateMenuSmooth | ( | SAppMenu * | menu | ) |
Updates menu items on the display. That is if selection is changed, the function will update only those areas, affected by the change. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.
menu | Pointer to SAppMenu structure |
Definition at line 736 of file ssd1306_common.inl.