SSD1306 OLED display driver  1.3.2
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 
145 uint8_t ssd1306_charF12x16(uint8_t xpos,
146  uint8_t y,
147  const char ch[],
148  EFontStyle style);
149 
150 
163 uint8_t ssd1306_charF6x8_eol(uint8_t left,
164  uint8_t y,
165  const char ch[],
166  EFontStyle style,
167  uint8_t right);
168 
169 
180 void ssd1306_setFont6x8(const uint8_t * progmemFont);
181 
194 void ssd1306_putPixel(uint8_t x, uint8_t y);
195 
210 void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels);
211 
219 void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
220 
227 void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2);
228 
235 void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2);
236 
253 void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
254 
258 #define ssd1306_drawCanvas(x, y, w, h, buf) ssd1306_drawBuffer(x, y, w, h, buf)
259 
269 void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
270 
271 
280 void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h);
281 
282 
290 void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite);
291 
297 void ssd1306_drawSprite(SPRITE *sprite);
298 
303 void ssd1306_eraseSprite(SPRITE *sprite);
304 
309 void ssd1306_eraseTrace(SPRITE *sprite);
310 
319 SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data);
320 
327 void ssd1306_replaceSprite(SPRITE *sprite, const uint8_t *data);
328 
333 // HIGH-LEVEL GRAPH FUNCTIONS
336 
345 typedef struct
346 {
348  const char **items;
350  uint8_t count;
352  uint8_t selection;
354  uint8_t oldSelection;
356  uint8_t scrollPosition;
357 } SAppMenu;
358 
368 void ssd1306_createMenu(SAppMenu *menu, const char **items, uint8_t count);
369 
376 void ssd1306_showMenu(SAppMenu *menu);
377 
384 void ssd1306_updateMenu(SAppMenu *menu);
385 
386 
393 uint8_t ssd1306_menuSelection(SAppMenu *menu);
394 
395 
403 void ssd1306_menuDown(SAppMenu *menu);
404 
405 
413 void ssd1306_menuUp(SAppMenu *menu);
414 
419 #ifdef __cplusplus
420 }
421 #endif
422 
423 #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:294
void ssd1306_negativeMode()
Definition: ssd1306.cpp:453
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:438
void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2)
Definition: ssd1306.cpp:238
void ssd1306_setFont6x8(const uint8_t *progmemFont)
Definition: ssd1306.cpp:217
uint8_t ssd1306_charF6x8_eol(uint8_t left, uint8_t y, const char ch[], EFontStyle style, uint8_t right)
Definition: ssd1306.cpp:202
void ssd1306_displayOn()
Definition: ssd1306.cpp:84
void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2)
Definition: ssd1306.cpp:249
void ssd1306_positiveMode()
Definition: ssd1306.cpp:458
void ssd1306_updateMenu(SAppMenu *menu)
void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels)
Definition: ssd1306.cpp:230
SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data)
Definition: ssd1306.cpp:433
void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite)
Definition: ssd1306.cpp:328
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:270
uint8_t selection
currently selected item. Internally updated.
Definition: ssd1306.h:352
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:356
uint8_t ssd1306_charF12x16(uint8_t xpos, uint8_t y, const char ch[], EFontStyle style)
Definition: ssd1306.cpp:131
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:311
uint8_t count
count of menu items in the menu
Definition: ssd1306.h:350
void ssd1306_invertMode()
Definition: ssd1306.cpp:443
uint8_t ssd1306_displayWidth()
Definition: ssd1306.cpp:41
void ssd1306_drawSprite(SPRITE *sprite)
Definition: ssd1306.cpp:341
void ssd1306_eraseTrace(SPRITE *sprite)
Definition: ssd1306.cpp:394
void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:278
void ssd1306_eraseSprite(SPRITE *sprite)
Definition: ssd1306.cpp:370
void ssd1306_setPos(uint8_t x, uint8_t y)
void ssd1306_normalMode()
Definition: ssd1306.cpp:448
void ssd1306_putPixel(uint8_t x, uint8_t y)
Definition: ssd1306.cpp:222
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:354
const char ** items
list of menu items of the menu
Definition: ssd1306.h:348