SSD1306 I2C Display Driver  1.2.2
This library is developed to control SSD1306 I2C 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 "lcd/ssd1306_128x64.h"
29 #include "lcd/ssd1306_128x32.h"
30 #include "lcd/pcd8544_84x48.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
37 // DISPLAY CONTROL FUNCTIONS
39 
48 void ssd1306_displayOff();
49 
53 void ssd1306_displayOn();
54 
59 void ssd1306_invertMode();
60 
64 void ssd1306_normalMode();
65 
69 uint8_t ssd1306_displayHeight();
70 
74 uint8_t ssd1306_displayWidth();
75 
80 // DIRECT GRAPH FUNCTIONS
83 
94 void ssd1306_setPos(uint8_t x, uint8_t y);
95 
101 void ssd1306_sendData(uint8_t data);
102 
106 void ssd1306_fillScreen(uint8_t fill_Data);
107 
111 void ssd1306_clearScreen();
112 
117 void ssd1306_negativeMode();
118 
123 void ssd1306_positiveMode();
124 
132 void ssd1306_charF6x8(uint8_t x, uint8_t y,
133  const char ch[],
134  EFontStyle style
135 #ifdef __cplusplus
136  = STYLE_NORMAL
137 #endif
138  );
139 
150 void ssd1306_setFont6x8(const uint8_t * progmemFont);
151 
164 void ssd1306_putPixel(uint8_t x, uint8_t y);
165 
180 void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels);
181 
189 void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
190 
197 void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2);
198 
205 void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2);
206 
223 void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
224 
228 #define ssd1306_drawCanvas(x, y, w, h, buf) ssd1306_drawBuffer(x, y, w, h, buf)
229 
239 void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf);
240 
241 
250 void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h);
251 
252 
260 void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite);
261 
267 void ssd1306_drawSprite(SPRITE *sprite);
268 
273 void ssd1306_eraseSprite(SPRITE *sprite);
274 
279 void ssd1306_eraseTrace(SPRITE *sprite);
280 
289 SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data);
290 
297 void ssd1306_replaceSprite(SPRITE *sprite, const uint8_t *data);
298 
303 // HIGH-LEVEL GRAPH FUNCTIONS
306 
315 typedef struct
316 {
318  const char **items;
320  uint8_t count;
322  uint8_t selection;
324  uint8_t oldSelection;
326  uint8_t scrollPosition;
327 } SAppMenu;
328 
338 void ssd1306_createMenu(SAppMenu *menu, const char **items, uint8_t count);
339 
346 void ssd1306_showMenu(SAppMenu *menu);
347 
354 void ssd1306_updateMenu(SAppMenu *menu);
355 
356 
363 uint8_t ssd1306_menuSelection(SAppMenu *menu);
364 
365 
373 void ssd1306_menuDown(SAppMenu *menu);
374 
375 
383 void ssd1306_menuUp(SAppMenu *menu);
384 
389 #ifdef __cplusplus
390 }
391 #endif
392 
393 #endif // _SSD1306_H_
void ssd1306_showMenu(SAppMenu *menu)
Definition: ssd1306_menu.c:64
void ssd1306_charF6x8(uint8_t x, uint8_t y, const char ch[], EFontStyle style=STYLE_NORMAL)
Definition: ssd1306.cpp:134
void ssd1306_drawBitmap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:252
void ssd1306_negativeMode()
Definition: ssd1306.cpp:421
void ssd1306_displayOff()
Definition: ssd1306.cpp:123
uint8_t ssd1306_displayHeight()
Definition: ssd1306.cpp:34
void ssd1306_replaceSprite(SPRITE *sprite, const uint8_t *data)
Definition: ssd1306.cpp:406
void ssd1306_drawHLine(uint8_t x1, uint8_t y1, uint8_t x2)
Definition: ssd1306.cpp:199
void ssd1306_setFont6x8(const uint8_t *progmemFont)
Definition: ssd1306.cpp:176
void ssd1306_displayOn()
Definition: ssd1306.cpp:129
void ssd1306_drawVLine(uint8_t x1, uint8_t y1, uint8_t y2)
Definition: ssd1306.cpp:210
void ssd1306_positiveMode()
Definition: ssd1306.cpp:426
void ssd1306_updateMenu(SAppMenu *menu)
Definition: ssd1306_menu.c:75
void ssd1306_putPixels(uint8_t x, uint8_t y, uint8_t pixels)
Definition: ssd1306.cpp:190
SPRITE ssd1306_createSprite(uint8_t x, uint8_t y, uint8_t w, const uint8_t *data)
Definition: ssd1306.cpp:401
void ssd1306_drawSpriteEx(uint8_t x, uint8_t y, uint8_t w, const uint8_t *sprite)
Definition: ssd1306.cpp:296
void ssd1306_fillScreen(uint8_t fill_Data)
Definition: ssd1306.cpp:93
void ssd1306_drawRect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
Definition: ssd1306.cpp:223
uint8_t selection
currently selected item. Internally updated.
Definition: ssd1306.h:322
void ssd1306_createMenu(SAppMenu *menu, const char **items, uint8_t count)
Definition: ssd1306_menu.c:28
void ssd1306_clearScreen()
Definition: ssd1306.cpp:108
uint8_t scrollPosition
position of menu scrolling. Internally updated
Definition: ssd1306.h:326
void ssd1306_clearBlock(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
Definition: ssd1306.cpp:274
uint8_t count
count of menu items in the menu
Definition: ssd1306.h:320
void ssd1306_invertMode()
Definition: ssd1306.cpp:411
uint8_t ssd1306_displayWidth()
Definition: ssd1306.cpp:39
void ssd1306_drawSprite(SPRITE *sprite)
Definition: ssd1306.cpp:309
void ssd1306_eraseTrace(SPRITE *sprite)
Definition: ssd1306.cpp:362
void ssd1306_drawBuffer(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *buf)
Definition: ssd1306.cpp:231
void ssd1306_eraseSprite(SPRITE *sprite)
Definition: ssd1306.cpp:338
void ssd1306_sendData(uint8_t data)
Definition: ssd1306.cpp:86
void ssd1306_setPos(uint8_t x, uint8_t y)
Definition: ssd1306.cpp:67
void ssd1306_normalMode()
Definition: ssd1306.cpp:416
void ssd1306_putPixel(uint8_t x, uint8_t y)
Definition: ssd1306.cpp:181
uint8_t ssd1306_menuSelection(SAppMenu *menu)
Definition: ssd1306_menu.c:94
void ssd1306_menuDown(SAppMenu *menu)
Definition: ssd1306_menu.c:99
EFontStyle
void ssd1306_menuUp(SAppMenu *menu)
Definition: ssd1306_menu.c:111
uint8_t oldSelection
selected item, when last redraw operation was performed. Internally updated.
Definition: ssd1306.h:324
const char ** items
list of menu items of the menu
Definition: ssd1306.h:318