LCDGFX LCD display driver
1.1.5
This library is developed to control SSD1306/SSD1325/SSD1327/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays
|
#include <display.h>
Public Types | |
typedef NanoDisplayOps< O, I > | T |
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 | drawCircle (lcdint_t xc, lcdint_t yc, lcdint_t r, uint8_t options=0x0F) |
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 | write (const char *str) |
void | print (int number) |
void | print (float number) |
void | print (char c) |
void | createMenu (SAppMenu *menu, const char **items, uint8_t count, const NanoRect &rect={}) |
void | showMenu (SAppMenu *menu) |
void | showMenuSmooth (SAppMenu *menu) |
void | updateMenu (SAppMenu *menu) |
void | updateMenuSmooth (SAppMenu *menu) |
uint8_t | menuSelection (const 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.
typedef NanoDisplayOps<O, I> NanoDisplayOps< O, I >::T |
|
protectedpure virtual |
Initializes interface and display
Implemented in DisplaySSD1306_128x64_Custom< I >, DisplaySSD1306_128x64_CustomI2C< I >, DisplaySSD1306_128x64_I2C, DisplaySSD1306_128x64_CustomSPI< I >, DisplaySSD1306_128x64_SPI, DisplaySSD1306_128x32_Custom< I >, DisplaySSD1306_128x32_CustomI2C< I >, DisplaySSD1306_128x32_I2C, DisplaySSD1306_128x32_CustomSPI< I >, DisplaySSD1306_128x32_SPI, DisplaySSD1306_64x48_Custom< I >, DisplaySSD1306_64x48_CustomI2C< I >, DisplaySH1107_64x128_CustomI2C< I >, DisplaySSD1306_64x48_I2C, DisplaySH1107_64x128_I2C, DisplaySSD1306_64x48_CustomSPI< I >, DisplaySH1107_64x128_CustomSPI< I >, DisplaySSD1306_64x48_SPI, DisplayST7735_128x160x16_CustomSPI< I >, DisplaySH1107_64x128_SPI, DisplayST7735_128x160x16_SPI, DisplaySSD1306_64x32_Custom< I >, DisplaySSD1331_96x64x16_CustomSPI< I >, DisplaySH1107_128x64_CustomI2C< I >, DisplaySSD1331_96x64x16_SPI, DisplaySH1106_128x64_CustomI2C< I >, DisplaySSD1306_64x32_CustomI2C< I >, DisplaySSD1351_96x96x16_CustomSPI< I >, DisplayST7735_80x160x16_CustomSPI< I >, DisplayST7789_240x240x16_CustomSPI< I >, DisplayILI9341_128x160x16_CustomSPI< I >, DisplaySH1107_128x64_I2C, DisplayIL9163_128x160x16_CustomSPI< I >, DisplaySH1106_128x64_I2C, DisplaySSD1306_64x32_I2C, DisplaySSD1351_96x96x16_SPI, DisplayST7735_80x160x16_SPI, DisplayST7789_240x240x16_SPI, DisplayILI9341_128x160x16_SPI, DisplaySH1107_128x64_CustomSPI< I >, DisplayIL9163_128x160x16_SPI, DisplaySSD1325_128x64_CustomI2C< I >, DisplaySSD1327_128x128_CustomI2C< I >, DisplaySH1106_128x64_CustomSPI< I >, DisplaySSD1306_64x32_CustomSPI< I >, DisplaySH1107_128x64_SPI, DisplaySSD1325_128x64_I2C, DisplaySSD1327_128x128_I2C, DisplaySSD1331_96x64x8_CustomSPI< I >, DisplaySSD1351_128x128x16_CustomSPI< I >, DisplayST7735_128x128x16_CustomSPI< I >, DisplayAny16, DisplaySH1106_128x64_SPI, DisplaySSD1306_64x32_SPI, DisplayST7789_135x240x16_CustomSPI< I >, DisplayILI9341_240x320x16_CustomSPI< I >, DisplayIL9163_128x128x16_CustomSPI< I >, DisplaySSD1331_96x64x8_SPI, DisplayPCD8544_84x48_CustomSPI< I >, DisplaySSD1325_128x64_CustomSPI< I >, DisplaySSD1327_128x128_CustomSPI< I >, DisplayAny8, DisplaySSD1351_128x128x16_SPI, DisplayST7735_128x128x16_SPI, DisplayST7789_135x240x16_SPI, DisplayILI9341_240x320x16_SPI, DisplayIL9163_128x128x16_SPI, DisplayAny4, DisplayPCD8544_84x48_SPI, DisplaySSD1325_128x64_SPI, DisplaySSD1327_128x128_SPI, and DisplayAny1.
void NanoDisplayOps< O, I >::createMenu | ( | SAppMenu * | menu, |
const char ** | items, | ||
uint8_t | count, | ||
const NanoRect & | rect = {} |
||
) |
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 |
rect | screen area to use for menu |
Definition at line 728 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 831 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 836 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 841 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 846 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawCircle | ( | lcdint_t | xc, |
lcdint_t | yc, | ||
lcdint_t | r, | ||
uint8_t | options = 0x0F |
||
) |
Draws circle
xc | horizontal position of circle center in pixels |
yc | vertical position of circle center in pixels |
r | radius of circle in pixels |
options | draw specific sections: each bit corresponds to 90 degree section |
Definition at line 594 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 538 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawLine | ( | const NanoRect & | rect | ) |
Draws line
rect | - structure, describing rectangle area |
Definition at line 584 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 851 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 525 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::drawRect | ( | const NanoRect & | rect | ) |
Draws rectangle
rect | - structure, describing rectangle area |
Definition at line 533 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 882 of file ssd1306_common.inl.
|
protectedpure virtual |
closes interface to lcd display
Implemented in DisplaySSD1306_128x64_Custom< I >, DisplaySSD1306_128x64_CustomI2C< I >, DisplaySSD1306_128x64_I2C, DisplaySSD1306_128x64_CustomSPI< I >, DisplaySSD1306_128x64_SPI, DisplaySSD1306_128x32_Custom< I >, DisplaySSD1306_128x32_CustomI2C< I >, DisplaySSD1306_128x32_I2C, DisplaySSD1306_128x32_CustomSPI< I >, DisplaySSD1306_128x32_SPI, DisplaySSD1306_64x48_Custom< I >, DisplaySSD1306_64x48_CustomI2C< I >, DisplaySH1107_64x128_CustomI2C< I >, DisplaySSD1306_64x48_I2C, DisplaySH1107_64x128_I2C, DisplaySSD1306_64x48_CustomSPI< I >, DisplaySH1107_64x128_CustomSPI< I >, DisplaySSD1306_64x48_SPI, DisplayST7735_128x160x16_CustomSPI< I >, DisplaySH1107_64x128_SPI, DisplayST7735_128x160x16_SPI, DisplaySSD1306_64x32_Custom< I >, DisplaySSD1331_96x64x16_CustomSPI< I >, DisplaySH1107_128x64_CustomI2C< I >, DisplaySH1106_128x64_CustomI2C< I >, DisplaySSD1306_64x32_CustomI2C< I >, DisplaySSD1331_96x64x16_SPI, DisplaySSD1351_96x96x16_CustomSPI< I >, DisplayST7735_80x160x16_CustomSPI< I >, DisplayST7789_240x240x16_CustomSPI< I >, DisplayILI9341_128x160x16_CustomSPI< I >, DisplaySH1107_128x64_I2C, DisplayIL9163_128x160x16_CustomSPI< I >, DisplaySH1106_128x64_I2C, DisplaySSD1306_64x32_I2C, DisplaySSD1351_96x96x16_SPI, DisplayST7735_80x160x16_SPI, DisplayST7789_240x240x16_SPI, DisplayILI9341_128x160x16_SPI, DisplaySH1107_128x64_CustomSPI< I >, DisplaySSD1325_128x64_CustomI2C< I >, DisplaySSD1327_128x128_CustomI2C< I >, DisplayIL9163_128x160x16_SPI, DisplaySH1106_128x64_CustomSPI< I >, DisplaySSD1306_64x32_CustomSPI< I >, DisplaySH1107_128x64_SPI, DisplaySSD1331_96x64x8_CustomSPI< I >, DisplaySSD1325_128x64_I2C, DisplaySSD1327_128x128_I2C, DisplaySSD1351_128x128x16_CustomSPI< I >, DisplayST7735_128x128x16_CustomSPI< I >, DisplayAny16, DisplaySH1106_128x64_SPI, DisplayST7789_135x240x16_CustomSPI< I >, DisplaySSD1306_64x32_SPI, DisplayILI9341_240x320x16_CustomSPI< I >, DisplayIL9163_128x128x16_CustomSPI< I >, DisplayPCD8544_84x48_CustomSPI< I >, DisplaySSD1331_96x64x8_SPI, DisplaySSD1325_128x64_CustomSPI< I >, DisplaySSD1327_128x128_CustomSPI< I >, DisplayAny8, DisplaySSD1351_128x128x16_SPI, DisplayST7735_128x128x16_SPI, DisplayST7789_135x240x16_SPI, DisplayILI9341_240x320x16_SPI, DisplayIL9163_128x128x16_SPI, DisplayAny4, DisplayPCD8544_84x48_SPI, DisplaySSD1325_128x64_SPI, DisplaySSD1327_128x128_SPI, and DisplayAny1.
void NanoDisplayOps< O, I >::fillRect | ( | const NanoRect & | rect | ) |
Fills rectangle area
rect | - structure, describing rectangle area |
Definition at line 589 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 807 of file ssd1306_common.inl.
uint8_t NanoDisplayOps< O, I >::menuSelection | ( | const SAppMenu * | menu | ) |
Returns currently selected menu item. First item has zero-index.
menu | pointer to SAppMenu structure |
Definition at line 802 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 819 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::print | ( | int | number | ) |
Prints number at current cursor position To specify cursor position using setTextCursor() method.
number | integer number to print |
Definition at line 648 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::print | ( | float | number | ) |
Prints number at current cursor position To specify cursor position using setTextCursor() method.
number | float number to print |
Definition at line 655 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::print | ( | char | c | ) |
Prints single character at current cursor position To specify cursor position using setTextCursor() method.
c | character to print |
Definition at line 662 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 624 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::putPixel | ( | const NanoPoint & | p | ) |
Draws pixel on specified position
p | - NanoPoint |
Definition at line 520 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 741 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 753 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 765 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 784 of file ssd1306_common.inl.
void NanoDisplayOps< O, I >::write | ( | const char * | str | ) |
Prints text at current cursor position. To specify cursor position using setTextCursor() method.
str | text to print (null-terminated string) |
Definition at line 639 of file ssd1306_common.inl.