Display_Lib_RPI 2.3.0
A C++ Library to connect electronic displays to Linux single board computers.
Loading...
Searching...
No Matches
SSD1331_OLED_RDL.hpp
Go to the documentation of this file.
1
7#pragma once
8
9// Section Libraries
11
12
17{
18
19public:
20
72
74 ~SSD1331_OLED(){};
75
76 // Functions
77 // From graphics virtual
78 virtual void setAddrWindow(uint16_t, uint16_t, uint16_t, uint16_t) override;
79 //Setup related
80 void OLEDSetupGPIO(int8_t, int8_t, int8_t, int8_t, int8_t); //SW SPI
81 void OLEDSetupGPIO(int8_t, int8_t); // HW SPI
84 rdlib::Return_Codes_e OLEDInitSPI(int device, int channel, int speed, int flags, int gpioDev); // HW SPI
86
87 // SPI related
91
92 // Screen related
95 void OLEDDimDisplay(void);
96 void OLEDenableDisplay(void);
97 void OLEDsleepDisplay(void);
105
106private:
107
108 void OLEDConfigueDimMode(void);
109 void OLEDConfigueContrast(void);
113 void cmdBegin(void);
115
116 // Screen
121 Constrast_values_t ContrastValues = { 0x7D, 0x7D, 0x7D };
124 // SPI related
125 int _spiDev = 0;
126 int _spiChan = 0;
127 int _spiBaud = 50000;
128 int _spiFlags = 0;
130 // SSD1331 Commands & registers
131 static constexpr uint8_t _CMD_DRAWLINE = 0x21 ;
132 static constexpr uint8_t _CMD_DRAWRECT = 0x22 ;
133 static constexpr uint8_t _CMD_COPY_WINDOW = 0x23 ;
134 static constexpr uint8_t _CMD_DIM_WINDOW = 0x24 ;
135 static constexpr uint8_t _CMD_CLEAR_WINDOW = 0x25 ;
136 static constexpr uint8_t _CMD_FILL = 0x26 ;
137 static constexpr uint8_t _CMD_DISABLE_FILL = 0x00 ;
138 static constexpr uint8_t _CMD_ENABLE_FILL = 0x01 ;
140 static constexpr uint8_t _CMD_CONT_SCROLL_SET =0x27 ;
141 static constexpr uint8_t _CMD_DEACTIVE_SCROLL = 0x2E;
142 static constexpr uint8_t _CMD_ACTIVE_SCROLL = 0x2F ;
144 static constexpr uint8_t _CMD_SETCOLUMN = 0x15 ;
145 static constexpr uint8_t _CMD_SETROW = 0x75 ;
147 static constexpr uint8_t _CMD_CONTRASTA = 0x81 ;
148 static constexpr uint8_t _CMD_CONTRASTB = 0x82 ;
149 static constexpr uint8_t _CMD_CONTRASTC = 0x83 ;
150 static constexpr uint8_t _CMD_MASTERCURRENT = 0x87 ;
151 static constexpr uint8_t _CMD_PRECHARGEA = 0x8A ;
152 static constexpr uint8_t _CMD_PRECHARGEB = 0x8B ;
153 static constexpr uint8_t _CMD_PRECHARGEC = 0x8C ;
155 static constexpr uint8_t _CMD_SETREMAP = 0xA0 ;
156 static constexpr uint8_t _CMD_STARTLINE = 0xA1 ;
157 static constexpr uint8_t _CMD_DISPLAYOFFSET = 0xA2 ;
158 static constexpr uint8_t _CMD_NORMALDISPLAY = 0xA4 ;
159 static constexpr uint8_t _CMD_DISPLAYALLON = 0xA5 ;
160 static constexpr uint8_t _CMD_DISPLAYALLOFF = 0xA6 ;
161 static constexpr uint8_t _CMD_INVERTDISPLAY = 0xA7 ;
162 static constexpr uint8_t _CMD_SETMULTIPLEX = 0xA8 ;
163 static constexpr uint8_t _CMD_DIM_MODE_SET =0xAB ;
164 static constexpr uint8_t _CMD_DIM_MODE_ON = 0xAC ;
165 static constexpr uint8_t _CMD_SETMASTER = 0xAD ;
166 static constexpr uint8_t _CMD_DISPLAYOFF = 0xAE ;
167 static constexpr uint8_t _CMD_DISPLAYON = 0xAF ;
169 static constexpr uint8_t _CMD_POWERMODE = 0xB0 ;
170 static constexpr uint8_t _CMD_PRECHARGE = 0xB1 ;
171 static constexpr uint8_t _CMD_CLOCKDIV = 0xB3 ;
172 static constexpr uint8_t _CMD_SET_GRAYSCALE = 0xB8 ;
173 static constexpr uint8_t _CMD_ENABLE_GRAYSCALE =0xB9;
174 static constexpr uint8_t _CMD_PRECHARGE_VOLT = 0xBB ;
175 static constexpr uint8_t _CMD_V_VOLTAGE = 0xBE ;
177}; //end of SSD1331_OLED class
178
179// ********************** EOF *********************
static constexpr int defaultFormat()
Called from vector & string template , Get the default format for a given type.
Definition print_data_RDL.hpp:206
Class to control SSD1331 OLED basic functionality.
Definition SSD1331_OLED_RDL.hpp:17
color_order_e _colorOrder
Definition SSD1331_OLED_RDL.hpp:119
static constexpr uint8_t _CMD_SETCOLUMN
Definition SSD1331_OLED_RDL.hpp:144
void OLEDDrawRectCmd(uint8_t c1, uint8_t r1, uint8_t c2, uint8_t r2, uint16_t color, bool fill)
Draws a rectangle on the OLED display, with optional filling. This function issues a command to draw ...
Definition SSD1331_OLED_RDL.cpp:665
display_rotate_e _displayRotate
Definition SSD1331_OLED_RDL.hpp:120
int _spiDev
Definition SSD1331_OLED_RDL.hpp:125
void OLEDDrawLineCmd(uint8_t c1, uint8_t r1, uint8_t c2, uint8_t r2, uint16_t color)
Draws a line between two points on the OLED display.
Definition SSD1331_OLED_RDL.cpp:635
static constexpr uint8_t _CMD_NORMALDISPLAY
Definition SSD1331_OLED_RDL.hpp:158
void cmdBegin(void)
Command Initialization sequence for SSD1331 display.
Definition SSD1331_OLED_RDL.cpp:473
static constexpr uint8_t _CMD_DISPLAYOFFSET
Definition SSD1331_OLED_RDL.hpp:157
void OLEDSetupGPIO(int8_t, int8_t, int8_t, int8_t, int8_t)
sets up OLED GPIO for software SPI
Definition SSD1331_OLED_RDL.cpp:210
static constexpr uint8_t _CMD_CONTRASTA
Definition SSD1331_OLED_RDL.hpp:147
static constexpr uint8_t _CMD_DRAWRECT
Definition SSD1331_OLED_RDL.hpp:132
void OLEDScrollSetup(uint8_t, uint8_t, uint8_t, uint8_t, scroll_time_interval_e)
This method setups up horizontal and vertical scrolling register _CMD_CONT_SCROLL_SET.
Definition SSD1331_OLED_RDL.cpp:269
static constexpr uint8_t _CMD_V_VOLTAGE
Definition SSD1331_OLED_RDL.hpp:175
rdlib::Return_Codes_e OLEDResetPin(void)
Method for Hardware Reset pin control.
Definition SSD1331_OLED_RDL.cpp:111
void OLEDClearWindowCmd(uint8_t c1, uint8_t r1, uint8_t c2, uint8_t r2)
Clears a specific rectangular window on the OLED display.
Definition SSD1331_OLED_RDL.cpp:555
color_order_e
Set the pixel color order RGB mapping.
Definition SSD1331_OLED_RDL.hpp:43
@ COLORORDER_RGB
Definition SSD1331_OLED_RDL.hpp:44
@ COLORORDER_BGR
Definition SSD1331_OLED_RDL.hpp:45
static constexpr uint8_t _CMD_DIM_MODE_ON
Definition SSD1331_OLED_RDL.hpp:164
Dim_Constrast_values_t DimContrastValues
Definition SSD1331_OLED_RDL.hpp:122
display_mode_e
Set the display mode.
Definition SSD1331_OLED_RDL.hpp:50
@ DISPLAY_ALL_OFF
Definition SSD1331_OLED_RDL.hpp:54
@ DISPLAY_INVERSE
Definition SSD1331_OLED_RDL.hpp:51
@ DISPLAY_NORMAL
Definition SSD1331_OLED_RDL.hpp:52
@ DISPLAY_ALL_ON
Definition SSD1331_OLED_RDL.hpp:53
int _spiChan
Definition SSD1331_OLED_RDL.hpp:126
rdlib::Return_Codes_e OLEDDataCommandPin(void)
: Method for Data or Command pin setup
Definition SSD1331_OLED_RDL.cpp:136
static constexpr uint8_t _CMD_CONTRASTC
Definition SSD1331_OLED_RDL.hpp:149
static constexpr uint8_t _CMD_DEACTIVE_SCROLL
Definition SSD1331_OLED_RDL.hpp:141
void OLEDsleepDisplay(void)
enable sleep mode
Definition SSD1331_OLED_RDL.cpp:325
void OLEDDimWindowCmd(uint8_t c1, uint8_t r1, uint8_t c2, uint8_t r2)
Dims a specific rectangular window on the OLED display.
Definition SSD1331_OLED_RDL.cpp:611
static constexpr uint8_t _CMD_DISPLAYOFF
Definition SSD1331_OLED_RDL.hpp:166
static constexpr uint8_t _CMD_SET_GRAYSCALE
Definition SSD1331_OLED_RDL.hpp:172
static constexpr uint8_t _CMD_COPY_WINDOW
Definition SSD1331_OLED_RDL.hpp:133
static constexpr uint8_t _CMD_PRECHARGEC
Definition SSD1331_OLED_RDL.hpp:153
int _spiFlags
Definition SSD1331_OLED_RDL.hpp:128
static constexpr uint8_t _CMD_CLOCKDIV
Definition SSD1331_OLED_RDL.hpp:171
rdlib::Return_Codes_e OLEDClock_Data_ChipSelect_Pins(void)
: Method for Clock, data and chip select pin setup routine for software SPI.
Definition SSD1331_OLED_RDL.cpp:156
static constexpr uint8_t _CMD_FILL
Definition SSD1331_OLED_RDL.hpp:136
static constexpr uint8_t _CMD_PRECHARGEA
Definition SSD1331_OLED_RDL.hpp:151
static constexpr uint8_t _CMD_DIM_WINDOW
Definition SSD1331_OLED_RDL.hpp:134
static constexpr uint8_t _CMD_PRECHARGE_VOLT
Definition SSD1331_OLED_RDL.hpp:174
static constexpr uint8_t _CMD_SETMASTER
Definition SSD1331_OLED_RDL.hpp:165
static constexpr uint8_t _CMD_DISPLAYALLON
Definition SSD1331_OLED_RDL.hpp:159
rdlib::Return_Codes_e OLEDPowerDown(void)
Call when powering down OLED.
Definition SSD1331_OLED_RDL.cpp:29
int _spiBaud
Definition SSD1331_OLED_RDL.hpp:127
static constexpr uint8_t _CMD_ENABLE_GRAYSCALE
Definition SSD1331_OLED_RDL.hpp:173
uint16_t HighFreqDelayGet(void)
Freq delay used in SW SPI getter, uS delay used in SW SPI method.
Definition SSD1331_OLED_RDL.cpp:433
uint16_t _heightStartOLED
Definition SSD1331_OLED_RDL.hpp:118
void HighFreqDelaySet(uint16_t)
Freq delay used in SW SPI setter, uS delay used in SW SPI method.
Definition SSD1331_OLED_RDL.cpp:439
rdlib::Return_Codes_e OLEDInitSPI(uint16_t CommDelay, int gpioDev)
intialise PCBtype and SPI, Software SPI
Definition SSD1331_OLED_RDL.cpp:422
static constexpr uint8_t _CMD_CONT_SCROLL_SET
Definition SSD1331_OLED_RDL.hpp:140
rdlib::Return_Codes_e OLEDSSD1331Initialize(void)
init routine for SSD1331 controller
Definition SSD1331_OLED_RDL.cpp:228
static constexpr uint8_t _CMD_POWERMODE
Definition SSD1331_OLED_RDL.hpp:169
void OLEDenableDisplay(void)
enable display mode
Definition SSD1331_OLED_RDL.cpp:320
static constexpr uint8_t _CMD_DISPLAYALLOFF
Definition SSD1331_OLED_RDL.hpp:160
scroll_time_interval_e
Set the Set time interval between each scroll.
Definition SSD1331_OLED_RDL.hpp:24
@ SCROLL_FRAME_10
Definition SSD1331_OLED_RDL.hpp:26
@ SCROLL_FRAME_6
Definition SSD1331_OLED_RDL.hpp:25
@ SCROLL_FRAME_100
Definition SSD1331_OLED_RDL.hpp:27
@ SCROLL_FRAME_200
Definition SSD1331_OLED_RDL.hpp:28
void OLEDsetRotation(display_rotate_e r)
: change rotation of display.
Definition SSD1331_OLED_RDL.cpp:337
static constexpr uint8_t _CMD_DISABLE_FILL
Definition SSD1331_OLED_RDL.hpp:137
static constexpr uint8_t _CMD_CONTRASTB
Definition SSD1331_OLED_RDL.hpp:148
static constexpr uint8_t _CMD_DRAWLINE
Definition SSD1331_OLED_RDL.hpp:131
static constexpr uint8_t _CMD_PRECHARGEB
Definition SSD1331_OLED_RDL.hpp:152
virtual void setAddrWindow(uint16_t, uint16_t, uint16_t, uint16_t) override
SPI displays set an address window rectangle for blitting pixels.
Definition SSD1331_OLED_RDL.cpp:449
void OLEDDimDisplay(void)
enable dim mode
Definition SSD1331_OLED_RDL.cpp:315
void OLEDConfigueDimMode(void)
Command sequence for configure Dim mode contrast.
Definition SSD1331_OLED_RDL.cpp:521
static constexpr uint8_t _CMD_SETROW
Definition SSD1331_OLED_RDL.hpp:145
static constexpr uint8_t _CMD_CLEAR_WINDOW
Definition SSD1331_OLED_RDL.hpp:135
uint16_t _widthStartOLED
Definition SSD1331_OLED_RDL.hpp:117
Constrast_values_t ContrastValues
Definition SSD1331_OLED_RDL.hpp:121
void OLEDchangeDisplayMode(display_mode_e)
change the display mode
Definition SSD1331_OLED_RDL.cpp:304
static constexpr uint8_t _CMD_MASTERCURRENT
Definition SSD1331_OLED_RDL.hpp:150
void OLEDCopyWindowCmd(uint8_t c1, uint8_t r1, uint8_t c2, uint8_t r2, uint8_t c3, uint8_t r3)
Copies a specific rectangular window to a new position on the OLED display.
Definition SSD1331_OLED_RDL.cpp:582
static constexpr uint8_t _CMD_ENABLE_FILL
Definition SSD1331_OLED_RDL.hpp:138
static constexpr uint8_t _CMD_DISPLAYON
Definition SSD1331_OLED_RDL.hpp:167
static constexpr uint8_t _CMD_PRECHARGE
Definition SSD1331_OLED_RDL.hpp:170
static constexpr uint8_t _CMD_SETREMAP
Definition SSD1331_OLED_RDL.hpp:155
void WriteColor16(uint16_t colorWrite)
Writes a 16-bit RGB565 color to the SSD1331 OLED display. This function extracts the red,...
Definition SSD1331_OLED_RDL.cpp:706
static constexpr uint8_t _CMD_ACTIVE_SCROLL
Definition SSD1331_OLED_RDL.hpp:142
static constexpr uint8_t _CMD_DIM_MODE_SET
Definition SSD1331_OLED_RDL.hpp:163
void OLEDConfigueContrast(void)
Command sequence for configure contrast.
Definition SSD1331_OLED_RDL.cpp:535
void OLEDInitScreenSize(uint16_t w, uint16_t h)
initialise the variables that define the size of the screen
Definition SSD1331_OLED_RDL.cpp:382
scroll_control_e
Set the Scroll mode on or off according to the setting done by OLEDScrollSetup()
Definition SSD1331_OLED_RDL.hpp:33
@ SCROLL_DEACTIVE
Definition SSD1331_OLED_RDL.hpp:35
@ SCROLL_ACTIVATE
Definition SSD1331_OLED_RDL.hpp:34
static constexpr uint8_t _CMD_INVERTDISPLAY
Definition SSD1331_OLED_RDL.hpp:161
static constexpr uint8_t _CMD_SETMULTIPLEX
Definition SSD1331_OLED_RDL.hpp:162
static constexpr uint8_t _CMD_STARTLINE
Definition SSD1331_OLED_RDL.hpp:156
void OLEDScroll(scroll_control_e)
: This method is used to turn scroll on or off
Definition SSD1331_OLED_RDL.cpp:291
Class to handle fonts and graphics of color 16 bit display.
Definition color16_graphics_RDL.hpp:22
display_rotate_e
Definition color16_graphics_RDL.hpp:62
@ Degrees_0
Definition color16_graphics_RDL.hpp:63
Library header file for 16 bit (565) color graphics library. This file handles the graphic methods.
Return_Codes_e
Definition common_data_RDL.hpp:22
Set contrast color values in normal mode.
Definition SSD1331_OLED_RDL.hpp:59
uint8_t ContrastColorB
Definition SSD1331_OLED_RDL.hpp:61
uint8_t ContrastColorC
Definition SSD1331_OLED_RDL.hpp:62
uint8_t ContrastColorA
Definition SSD1331_OLED_RDL.hpp:60
Set contrast color values in dim mode.
Definition SSD1331_OLED_RDL.hpp:67
uint8_t Dim_ContrastColorB
Definition SSD1331_OLED_RDL.hpp:69
uint8_t Dim_ContrastColorA
Definition SSD1331_OLED_RDL.hpp:68
uint8_t Dim_ContrastColorC
Definition SSD1331_OLED_RDL.hpp:70