SSD1306 OLED display driver  1.6.1
This library is developed to control SSD1306/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays
lcd_common.h
Go to the documentation of this file.
1 /*
2  MIT License
3 
4  Copyright (c) 2017-2018, Alexey Dynda
5 
6  Permission is hereby granted, free of charge, to any person obtaining a copy
7  of this software and associated documentation files (the "Software"), to deal
8  in the Software without restriction, including without limitation the rights
9  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  copies of the Software, and to permit persons to whom the Software is
11  furnished to do so, subject to the following conditions:
12 
13  The above copyright notice and this permission notice shall be included in all
14  copies or substantial portions of the Software.
15 
16  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22  SOFTWARE.
23 */
28 #ifndef _LCD_COMMON_H_
29 #define _LCD_COMMON_H_
30 
31 #include "ssd1306_hal/io.h"
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
50 typedef enum
51 {
62 } lcd_type_t;
63 
69 typedef enum
70 {
76 
83 } lcd_mode_t;
84 
88 typedef struct
89 {
91  lcd_type_t type;
92 
95 
98 
114  void (*set_block)(lcduint_t x, lcduint_t y, lcduint_t w);
115 
122  void (*next_page)(void);
123 
128  void (*send_pixels1)(uint8_t data);
129 
135  void (*send_pixels_buffer1)(const uint8_t *buffer, uint16_t len);
136 
142  void (*send_pixels8)(uint8_t data);
143 
157  void (*set_mode)(lcd_mode_t mode);
158 } ssd1306_lcd_t;
159 
164 
169 #define s_displayHeight ssd1306_lcd.height
170 
175 #define s_displayWidth ssd1306_lcd.width
176 
181 #define g_lcd_type ssd1306_lcd.type
182 
190 void ssd1306_sendData(uint8_t data) __attribute__ ((deprecated));
191 
208 #define ssd1306_setRamBlock ssd1306_lcd.set_block
209 
217 #define ssd1306_nextRamPage ssd1306_lcd.next_page
218 
224 #define ssd1306_sendPixels ssd1306_lcd.send_pixels1
225 
232 #define ssd1306_sendPixelsBuffer ssd1306_lcd.send_pixels_buffer1
233 
240 #define ssd1306_sendPixel8 ssd1306_lcd.send_pixels8
241 
253 void ssd1306_configureI2cDisplay(const uint8_t *config, uint8_t configSize);
254 
268 void ssd1306_configureSpiDisplay(const uint8_t *config, uint8_t configSize);
269 
283 void ssd1306_setMode(lcd_mode_t mode);
284 
294 #ifdef __cplusplus
295 }
296 #endif
297 
298 #endif /* _LCD_COMMON_H_ */
void ssd1306_setMode(lcd_mode_t mode)
Sets library display mode for direct draw functions.
Definition: lcd_common.c:74
unsigned int lcduint_t
Definition: io.h:42
void ssd1306_configureSpiDisplay(const uint8_t *config, uint8_t configSize)
Sends configuration being passed to lcd display spi controller.
Definition: lcd_common.c:52
void ssd1306_configureI2cDisplay(const uint8_t *config, uint8_t configSize)
Sends configuration being passed to lcd display i2c/spi controller.
Definition: lcd_common.c:41
lcd_mode_t
Definition: lcd_common.h:69
ssd1306_lcd_t ssd1306_lcd
Definition: lcd_common.c:32
lcduint_t height
Definition: lcd_common.h:97
void ssd1306_sendData(uint8_t data) __attribute__((deprecated))
Definition: lcd_common.c:34
lcduint_t width
Definition: lcd_common.h:94
lcd_type_t
Definition: lcd_common.h:50
lcd_type_t type
Definition: lcd_common.h:91