SSD1306 OLED display driver  1.3.1
This library is developed to control SSD1306 i2c/spi OLED display
ssd1306.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2016-2017 Alexey Dynda
3 
4  This file is part of SSD1306 library.
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
24 #ifndef _SSD1306_H_
25 #define _SSD1306_H_
26 
27 #include "nano_gfx_types.h"
28 #include "i2c/ssd1306_i2c_conf.h"
29 #include "spi/ssd1306_spi_conf.h"
30 #include "lcd/ssd1306_128x64.h"
31 #include "lcd/ssd1306_128x32.h"
32 #include "lcd/sh1106_128x64.h"
33 #include "lcd/pcd8544_84x48.h"
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
40 // DISPLAY CONTROL FUNCTIONS
42 
51 void ssd1306_displayOff();
52 
56 void ssd1306_displayOn();
57 
62 void ssd1306_invertMode();
63 
67 void ssd1306_normalMode();
68 
72 uint8_t ssd1306_displayHeight();
73 
77 uint8_t ssd1306_displayWidth();
78 
83 // DIRECT GRAPH FUNCTIONS
86 
97 void ssd1306_setPos(uint8_t x, uint8_t y);
98 
102 void ssd1306_fillScreen(uint8_t fill_Data);
103 
107 void ssd1306_clearScreen();
108 
113 void ssd1306_negativeMode();
114 
119 void ssd1306_positiveMode();
120 
129 uint8_t ssd1306_charF6x8(uint8_t x, uint8_t y,
130  const char ch[],
131  EFontStyle style
132 #ifdef __cplusplus
133  = STYLE_NORMAL
134 #endif
135  );
136 
149 uint8_t ssd1306_charF6x8_eol(uint8_t left,
150  uint8_t y,
151  const char ch[],
152  EFontStyle style,
153  uint8_t right);
154 
155 
166 void ssd1306_setFont6x8(const uint8_t * progmemFont);
167 
180 void ssd1306_putPixel(uint8_t x, uint8_t y);
181 
196 void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels);
197 
205 void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
206 
213 void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2);
214 
221 void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2);
222 
239 void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
240 
244 #define ssd1306_drawCanvas(x, y, w, h, buf) ssd1306_drawBuffer(x, y, w, h, buf)
245 
255 void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
256 
257 
266 void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h);
267 
268 
276 void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite);
277 
283 void ssd1306_drawSprite(SPRITE *sprite);
284 
289 void ssd1306_eraseSprite(SPRITE *sprite);
290 
295 void ssd1306_eraseTrace(SPRITE *sprite);
296 
305 SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data);
306 
313 void ssd1306_replaceSprite(SPRITE *sprite, const uint8_t *data);
314 
319 // HIGH-LEVEL GRAPH FUNCTIONS
322 
331 typedef struct
332 {
334  const char **items;
336  uint8_t count;
338  uint8_t selection;
340  uint8_t oldSelection;
342  uint8_t scrollPosition;
343 } SAppMenu;
344 
354 void ssd1306_createMenu(SAppMenu *menu, const char **items, uint8_t count);
355 
362 void ssd1306_showMenu(SAppMenu *menu);
363 
370 void ssd1306_updateMenu(SAppMenu *menu);
371 
372 
379 uint8_t ssd1306_menuSelection(SAppMenu *menu);
380 
381 
389 void ssd1306_menuDown(SAppMenu *menu);
390 
391 
399 void ssd1306_menuUp(SAppMenu *menu);
400 
405 #ifdef __cplusplus
406 }
407 #endif
408 
409 #endif // _SSD1306_H_
void ssd1306_showMenu(SAppMenu *menu)
void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:218
void ssd1306_negativeMode()
Definition: ssd1306.cpp:377
void ssd1306_displayOff()
Definition: ssd1306.cpp:78
uint8_t ssd1306_displayHeight()
Definition: ssd1306.cpp:36
void ssd1306_replaceSprite(SPRITE *sprite, const uint8_t *data)
Definition: ssd1306.cpp:362
void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2)
Definition: ssd1306.cpp:167
void ssd1306_setFont6x8(const uint8_t *progmemFont)
Definition: ssd1306.cpp:146
uint8_t ssd1306_charF6x8_eol(uint8_t left, uint8_t y, const char ch[], EFontStyle style, uint8_t right)
Definition: ssd1306.cpp:131
void ssd1306_displayOn()
Definition: ssd1306.cpp:84
void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2)
Definition: ssd1306.cpp:178
void ssd1306_positiveMode()
Definition: ssd1306.cpp:382
void ssd1306_updateMenu(SAppMenu *menu)
void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels)
Definition: ssd1306.cpp:159
SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data)
Definition: ssd1306.cpp:357
void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite)
Definition: ssd1306.cpp:252
void ssd1306_fillScreen(uint8_t fill_Data)
Definition: ssd1306.cpp:46
void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
Definition: ssd1306.cpp:194
uint8_t selection
currently selected item. Internally updated.
Definition: ssd1306.h:338
void ssd1306_createMenu(SAppMenu *menu, const char **items, uint8_t count)
void ssd1306_clearScreen()
Definition: ssd1306.cpp:62
uint8_t scrollPosition
position of menu scrolling. Internally updated
Definition: ssd1306.h:342
uint8_t ssd1306_charF6x8(uint8_t x, uint8_t y, const char ch[], EFontStyle style=STYLE_NORMAL)
Definition: ssd1306.cpp:89
void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
Definition: ssd1306.cpp:235
uint8_t count
count of menu items in the menu
Definition: ssd1306.h:336
void ssd1306_invertMode()
Definition: ssd1306.cpp:367
uint8_t ssd1306_displayWidth()
Definition: ssd1306.cpp:41
void ssd1306_drawSprite(SPRITE *sprite)
Definition: ssd1306.cpp:265
void ssd1306_eraseTrace(SPRITE *sprite)
Definition: ssd1306.cpp:318
void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:202
void ssd1306_eraseSprite(SPRITE *sprite)
Definition: ssd1306.cpp:294
void ssd1306_setPos(uint8_t x, uint8_t y)
void ssd1306_normalMode()
Definition: ssd1306.cpp:372
void ssd1306_putPixel(uint8_t x, uint8_t y)
Definition: ssd1306.cpp:151
uint8_t ssd1306_menuSelection(SAppMenu *menu)
void ssd1306_menuDown(SAppMenu *menu)
EFontStyle
void ssd1306_menuUp(SAppMenu *menu)
uint8_t oldSelection
selected item, when last redraw operation was performed. Internally updated.
Definition: ssd1306.h:340
const char ** items
list of menu items of the menu
Definition: ssd1306.h:334