displaylib_1bit_PICO 2.0.0
1-bit colour graphic display library, Rpi PICO RP2040 library
|
class to control OLED and define buffer More...
#include <sh110x.hpp>
Public Types | |
enum | OLED_IC_type_e : uint8_t { SH1106_IC = 0 , SH1107_IC =1 } |
![]() | |
enum | PixelColor : uint8_t { BG_COLOR = 0 , FG_COLOR = 1 , INVERSE = 2 } |
Display Pixel colours definition. More... | |
enum | display_rotate_e : uint8_t { rDegrees_0 = 0 , rDegrees_90 = 1 , rDegrees_180 = 2 , rDegrees_270 = 3 } |
![]() | |
enum | BaseNum : uint8_t { DEC = 10 , HEX = 16 , OCT = 8 , BIN = 2 } |
Public Member Functions | |
SH110X (int16_t oledwidth, int16_t oledheight) | |
init the screen object | |
virtual void | drawPixel (int16_t x, int16_t y, uint8_t color) override |
Draws a Pixel to the screen overrides the graphics lib. | |
DisplayRet::Ret_Codes_e | OLEDSetBufferPtr (uint8_t width, uint8_t height, std::span< uint8_t > buffer) |
sets the buffer pointer to the users screen data buffer | |
DisplayRet::Ret_Codes_e | OLEDupdate (void) |
updates the buffer i.e. writes it to the screen | |
DisplayRet::Ret_Codes_e | OLEDclearBuffer (void) |
clears the buffer memory i.e. does NOT write to the screen | |
void | OLEDBufferScreen (uint8_t w, uint8_t h, std::span< uint8_t > buffer) |
Draw the buffer to screen directly to the screen. | |
void | OLEDFillScreen (uint8_t pixel, uint8_t mircodelay) |
Fill the screen NOT the buffer with a datapattern. | |
void | OLEDFillPage (uint8_t page_num, uint8_t pixels, uint8_t delay) |
Fill the chosen page with a data pattern. | |
DisplayRet::Ret_Codes_e | OLEDbegin (OLED_IC_type_e OLEDtype=SH1106_IC, int8_t resetPin=-1, uint8_t I2Caddress=0x3C, i2c_inst_t *i2c_type=i2c1, uint16_t CLKspeed=100, uint8_t SDApin=18, uint8_t SCLKpin=19) |
begin Method initialise OLED I2C communication | |
void | OLEDinit (void) |
Called from OLEDbegin carries out Power on sequence and register init. | |
void | OLEDPowerDown (void) |
Disables OLED Call when powering down before OLED_I2C_OFF. | |
void | OLEDReset (void) |
Handles OLED reset, if reset pin present on device. | |
void | OLEDEnable (uint8_t on) |
Turns On Display. | |
void | OLEDContrast (uint8_t OLEDcontrast) |
Adjusts contrast. | |
void | OLEDInvert (bool on) |
invert the display | |
void | OLED_I2C_OFF (void) |
End I2C operations. | |
int16_t | CheckConnection (void) |
Check Connection Function Check if device is on the bus asks for one byte. | |
bool | GetIsConnected (void) |
getter for is connected status | |
void | SetIsConnected (bool) |
setter for is connected status | |
bool | GetDebugMode (void) |
getter for debug status | |
void | SetDebugMode (bool) |
setter for debug status | |
uint8_t | GetI2CRetryAttemptsNo (void) |
Gets the Number of I2C retry Attempts in event of I2C bus error Set to zero for NO retry attempts. default 3. | |
void | SetI2CRetryAttemptsNo (uint8_t) |
Sets the Number of I2C retry Attempts in event of I2C bus error Set to zero for NO retry attempts. | |
uint16_t | GetI2CRetryDelay (void) |
Gets delay in mS between retry attempts in event of I2C error. | |
void | SetI2CRetryDelay (uint16_t) |
Sets delay in mS between retry attempts in event of I2C error. | |
uint32_t | GetI2CTimeout (void) |
Gets I2C timeout value used in I2C functions calls. | |
void | SetI2CTimeout (uint32_t) |
Sets delay the I2C timeout in uS. | |
![]() | |
displaylib_graphics (int16_t w, int16_t h) | |
init the OLED Graphics class object constructor | |
void | drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint8_t color) |
draws a line from (x0,y0) to (x1,y1). | |
void | drawFastVLine (int16_t x, int16_t y, int16_t h, uint8_t color) |
Draws a vertical line starting at (x,y) with height h. | |
void | drawFastHLine (int16_t x, int16_t y, int16_t w, uint8_t color) |
Draws a horizontal line starting at (x,y) with width w. | |
void | drawRect (int16_t x, int16_t y, int16_t w, int16_t h, uint8_t color) |
draws rectangle at (x,y) where h is height and w is width of the rectangle. | |
void | fillRect (int16_t x, int16_t y, int16_t w, int16_t h, uint8_t color) |
fills a rectangle starting from coordinates (x,y) with width of w and height of h. | |
void | fillScreen (uint8_t color) |
Fills the whole screen with a given color. | |
void | drawCircle (int16_t x0, int16_t y0, int16_t r, uint8_t color) |
Draws a circle with center coordinates (centerX, centerY) and a given radius. | |
void | fillCircle (int16_t x0, int16_t y0, int16_t r, uint8_t color) |
fills a circle where (x0,y0) are center coordinates an r is circle radius. | |
void | drawTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t color) |
draws a triangle of coordinates (x0,y0), (x1,y1) and (x2,y2). | |
void | fillTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t color) |
Fills a triangle defined by the coordinates (x0, y0), (x1, y1), and (x2, y2). | |
void | drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint8_t color) |
draws a rectangle with rounded edges | |
void | fillRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint8_t color) |
Fills a rectangle with rounded edges. | |
void | setCursor (int16_t x, int16_t y) |
set the cursor position | |
virtual size_t | write (uint8_t) |
write method used in the print class when user calls print | |
DisplayRet::Ret_Codes_e | writeChar (int16_t x, int16_t y, char value) |
Write 1 character on OLED. | |
DisplayRet::Ret_Codes_e | writeCharString (int16_t x, int16_t y, char *text) |
Write Text character array on OLED. | |
void | setTextWrap (bool w) |
turn on or off screen _textwrap of the text (fonts 1-6) | |
void | setDrawBitmapAddr (bool mode) |
sets the data addressing mode in drawBitmap function. | |
DisplayRet::Ret_Codes_e | drawBitmap (int16_t x, int16_t y, std::span< const uint8_t > bitmap, int16_t w, int16_t h, uint8_t color, uint8_t bg) |
Draw a 1-bit color bitmap. | |
int16_t | height (void) const |
Gets the height of the display (per current _rotation) | |
int16_t | width (void) const |
Gets the width of the display (per current _rotation) | |
display_rotate_e | getRotation (void) |
Gets the _rotation of the display. | |
void | setRotation (display_rotate_e r) |
Sets the _rotation of the display. | |
void | drawLineAngle (int16_t x, int16_t y, int angle, uint8_t start, uint8_t length, int offset, uint8_t color) |
Draws a line using an angle and length as parameters. This function draws a line starting from (x, y) , extending in the direction specified by angle , with a given length . The function also allows applying an offset to the angle before computing the line’s end coordinates. | |
void | drawQuadrilateral (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, uint8_t color) |
Draws a quadrilateral (four-sided polygon) by connecting four points with lines. This function draws a quadrilateral by drawing four lines between the given vertices. The lines are drawn in the order: (x0, y0) to (x1, y1), (x1, y1) to (x2, y2), (x2, y2) to (x3, y3), and finally (x3, y3) back to (x0, y0). | |
void | fillQuadrilateral (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, uint8_t color) |
Fills a quadrilateral with the specified color using triangles. This function fills a quadrilateral by dividing it into triangles and filling them individually. The quadrilateral is filled by calling the fillTriangle function three times with appropriate vertex coordinates. The useTriangleSplit parameter determines whether the quadrilateral is divided into two triangles or if only one triangle is used. | |
DisplayRet::Ret_Codes_e | drawPolygon (int16_t x, int16_t y, uint8_t sides, int16_t diameter, float rotation, bool fill, uint8_t color) |
Draws a polygon with a specified number of sides, diameter, rotation, and color. This function draws a regular polygon by connecting points equally spaced around a circle, with each point having a distance defined by the diameter. The polygon is rotated by the given angle (in degrees) before being drawn. The number of sides is enforced to be at least 3. | |
void | drawArc (uint16_t cx, uint16_t cy, uint16_t radius, uint16_t thickness, float startAngle, float endAngle, uint8_t color) |
Draw an arc on the TFT display. This function draws an arc between two angles (start and end) on a circle with a given radius. | |
void | drawSimpleArc (int16_t cx, int16_t cy, int16_t radius, float startAngle, float endAngle, uint8_t color) |
Draw a simple arc of one pixel on the display( no offsets , thickness or maximum arc calculations) This function draws an arc between two angles (start and end) on a circle with a given radius. | |
void | drawEllipse (int16_t cx, int16_t cy, int16_t semiMajorAxis, int16_t semiMinorAxis, bool fill, uint8_t color) |
Draw an ellipse on the display. This function uses the midpoint ellipse algorithm to efficiently draw an ellipse centered at (cx, cy) with the given semi-major (horizontal) and semi-minor (vertical) axes. | |
DisplayRet::Ret_Codes_e | drawDotGrid (int16_t x, int16_t y, int16_t w, int16_t h, uint8_t DotGridGap, uint8_t color) |
Draws a grid of dots on the screen starting from the given coordinates. This function draws a grid of pixels with a specified gap between them. It checks that the provided coordinates and dimensions are within the screen bounds and adjusts them if necessary. It also validates The grid of dots gap value and defaults it to 2 if invalid. | |
float | getArcAngleMax () const |
Get the current maximum angle of the arc. | |
void | setArcAngleMax (float arcAngleMax) |
Set a new maximum angle for the arc. | |
int | getArcAngleOffset () const |
Get the current angle offset. | |
void | setArcAngleOffset (int arcAngleOffset) |
Set a new angle offset. | |
![]() | |
displaylib_fonts () | |
init the OLED font class object constructor | |
DisplayRet::Ret_Codes_e | setFont (std::span< const uint8_t > font) |
SSD1306_SetFont. | |
void | setInvertFont (bool invertStatus) |
setInvertFont | |
bool | getInvertFont (void) |
getInvertFont | |
![]() | |
int | getWriteError () |
gets the error flag status, zero no error | |
void | clearWriteError () |
clears the errof flag by setting it to zero | |
size_t | write (const char *str) |
virtual size_t | write (const uint8_t *buffer, size_t size) |
size_t | write (const char *buffer, size_t size) |
virtual int | availableForWrite () |
size_t | print (const char[]) |
size_t | print (char) |
size_t | print (int, int=DEC) |
size_t | print (unsigned int, int=DEC) |
size_t | print (long, int=DEC) |
size_t | print (unsigned long, int=DEC) |
size_t | print (double, int=2) |
size_t | print (const std::string &) |
size_t | println (const char[]) |
size_t | println (char) |
size_t | println (int, int=DEC) |
size_t | println (unsigned int, int=DEC) |
size_t | println (long, int=DEC) |
size_t | println (unsigned long, int=DEC) |
size_t | println (double, int=2) |
size_t | println (void) |
size_t | println (const std::string &s) |
Static Public Attributes | |
static constexpr uint8_t | SH110X_ADDR = 0x3C |
Private Member Functions | |
void | I2CWriteByte (uint8_t value=0x00, uint8_t DataOrCmd=SH110X_COMMAND_BYTE) |
Writes a byte to I2C address,command or data, used internally. | |
void | SH1106_begin (void) |
Init routine for SH1106 OLED. | |
void | SH1107_begin (void) |
Init routine for SH1107 OLED. | |
Private Attributes | |
uint8_t | _I2CRetryAttempts = 3 |
uint16_t | _I2CRetryDelay = 100 |
uint32_t | _TimeoutDelayI2C = 50000 |
uint8_t | _OLEDAddressI2C = SH110X_ADDR |
uint8_t | _SDataPin = 18 |
uint8_t | _SClkPin = 19 |
uint16_t | _CLKSpeed = 100 |
i2c_inst_t * | _i2c |
bool | _bIsConnected = false |
bool | _bSerialDebugFlag = false |
uint8_t | _OLED_WIDTH =128 |
uint8_t | _OLED_HEIGHT =64 |
uint8_t | _OLED_PAGE_NUM =(_OLED_HEIGHT/8) |
uint8_t | pageStartOffset = 0 |
std::span< uint8_t > | _OLEDbuffer |
OLED_IC_type_e | _OLED_IC_type = SH1106_IC |
int8_t | _Display_RST = -1 |
Static Private Attributes | |
static constexpr uint8_t | SH110X_MEMORYMODE = 0x20 |
static constexpr uint8_t | SH110X_COLUMNADDR = 0x21 |
static constexpr uint8_t | SH110X_PAGEADDR = 0x22 |
static constexpr uint8_t | SH110X_CHARGEPUMP = 0x8D |
static constexpr uint8_t | SH110X_SETCONTRAST = 0x81 |
static constexpr uint8_t | SH110X_SEGREMAP = 0xA0 |
static constexpr uint8_t | SH110X_DISPLAYALLON_RESUME = 0xA4 |
static constexpr uint8_t | SH110X_DISPLAYALLON = 0xA5 |
static constexpr uint8_t | SH110X_NORMALDISPLAY = 0xA6 |
static constexpr uint8_t | SH110X_INVERTDISPLAY = 0xA7 |
static constexpr uint8_t | SH110X_SETMULTIPLEX = 0xA8 |
static constexpr uint8_t | SH110X_DCDC = 0xAD |
static constexpr uint8_t | SH110X_DISPLAYOFF = 0xAE |
static constexpr uint8_t | SH110X_DISPLAYON = 0xAF |
static constexpr uint8_t | SH110X_SETPAGEADDR = 0xB0 |
static constexpr uint8_t | SH110X_COMSCANINC = 0xC0 |
static constexpr uint8_t | SH110X_COMSCANDEC = 0xC8 |
static constexpr uint8_t | SH110X_SETDISPLAYOFFSET = 0xD3 |
static constexpr uint8_t | SH110X_SETDISPLAYCLOCKDIV = 0xD5 |
static constexpr uint8_t | SH110X_SETPRECHARGE = 0xD9 |
static constexpr uint8_t | SH110X_SETCOMPINS = 0xDA |
static constexpr uint8_t | SH110X_SETVCOMDETECT = 0xDB |
static constexpr uint8_t | SH110X_SETDISPSTARTLINE = 0xDC |
static constexpr uint8_t | SH110X_SETLOWCOLUMN = 0x00 |
static constexpr uint8_t | SH110X_SETHIGHCOLUMN = 0x10 |
static constexpr uint8_t | SH110X_SETSTARTLINE = 0x40 |
static constexpr uint8_t | SH110X_COMMAND_BYTE = 0x00 |
static constexpr uint8_t | SH110X_DATA_BYTE = 0x40 |
Additional Inherited Members | |
![]() | |
float | sineFromDegrees (float angle) |
Computes the sine of an angle given in degrees. This function converts the input angle from degrees to radians and then calculates the sine of that angle using the standard C++ sin function. | |
float | cosineFromDegrees (float angle) |
Computes the cosine of an angle given in degrees. This function converts the input angle from degrees to radians and then calculates the cosine of that angle using the standard C++ cos function. | |
void | ellipseHelper (uint16_t cx, uint16_t cy, uint16_t x, uint16_t y, uint8_t color) |
void | drawArcHelper (uint16_t cx, uint16_t cy, uint16_t radius, uint16_t thickness, float start, float end, uint8_t color) |
void | drawCircleHelper (int16_t x0, int16_t y0, int16_t r, uint8_t cornername, uint8_t color) |
void | fillCircleHelper (int16_t x0, int16_t y0, int16_t r, uint8_t cornername, int16_t delta, uint8_t color) |
![]() | |
void | setWriteError (int err=1) |
![]() | |
const int16_t | WIDTH |
const int16_t | HEIGHT |
display_rotate_e | _display_rotate = rDegrees_0 |
int16_t | _width |
int16_t | _height |
int16_t | _cursor_x = 0 |
int16_t | _cursor_y = 0 |
bool | _drawBitmapAddr |
bool | _textwrap = true |
float | _arcAngleMax = 360.0f |
int | _arcAngleOffset = 0 |
![]() | |
std::span< const uint8_t > | _FontSelect = pFontDefault |
uint8_t | _Font_X_Size = 0x06 |
uint8_t | _Font_Y_Size = 0x08 |
uint8_t | _FontOffset = 0x00 |
uint8_t | _FontNumChars = 0xFE |
class to control OLED and define buffer
enum SH110X::OLED_IC_type_e : uint8_t |
SH110X::SH110X | ( | int16_t | oledwidth, |
int16_t | oledheight | ||
) |
init the screen object
oledwidth | width of OLED in pixels |
oledheight | height of OLED in pixels |
int16_t SH110X::CheckConnection | ( | void | ) |
Check Connection Function Check if device is on the bus asks for one byte.
|
overridevirtual |
Draws a Pixel to the screen overrides the graphics lib.
x | x axis position |
y | y axis position |
color | color of pixel. |
Implements displaylib_graphics.
bool SH110X::GetDebugMode | ( | void | ) |
getter for debug status
uint8_t SH110X::GetI2CRetryAttemptsNo | ( | void | ) |
Gets the Number of I2C retry Attempts in event of I2C bus error Set to zero for NO retry attempts. default 3.
uint16_t SH110X::GetI2CRetryDelay | ( | void | ) |
Gets delay in mS between retry attempts in event of I2C error.
uint32_t SH110X::GetI2CTimeout | ( | void | ) |
Gets I2C timeout value used in I2C functions calls.
bool SH110X::GetIsConnected | ( | void | ) |
getter for is connected status
|
private |
Writes a byte to I2C address,command or data, used internally.
value | write the value to be written |
cmd | command or data |
DisplayRet::Ret_Codes_e SH110X::OLEDbegin | ( | OLED_IC_type_e | OLEDtype = SH1106_IC , |
int8_t | resetPin = -1 , |
||
uint8_t | I2Caddress = 0x3C , |
||
i2c_inst_t * | i2c_type = i2c1 , |
||
uint16_t | CLKspeed = 100 , |
||
uint8_t | SDApin = 18 , |
||
uint8_t | SCLKpin = 19 |
||
) |
begin Method initialise OLED I2C communication
OLEDtype | enum type of display sh1106 or sh1107 |
resetPin | Used only if reset pin present on device, iF not = set to -1 |
I2Caddress | I2C Bus address by default 0x3C |
i2c_type | The I2C interface i2c0 or ic21 interface |
CLKspeed | I2C Bus Clock speed in KHz. |
SDApin | I2C data GPIO pin |
SCLKpin | I2C clock GPIO pin |
void SH110X::OLEDBufferScreen | ( | uint8_t | w, |
uint8_t | h, | ||
std::span< uint8_t > | data | ||
) |
Draw the buffer to screen directly to the screen.
w | width |
h | height |
data | the buffer data |
DisplayRet::Ret_Codes_e SH110X::OLEDclearBuffer | ( | void | ) |
clears the buffer memory i.e. does NOT write to the screen
void SH110X::OLEDContrast | ( | uint8_t | contrast | ) |
Adjusts contrast.
contrast | 0x00 to 0xFF , default 0x80 |
void SH110X::OLEDEnable | ( | uint8_t | bits | ) |
Turns On Display.
bits | 1 on , 0 off |
void SH110X::OLEDFillPage | ( | uint8_t | page_num, |
uint8_t | dataPattern, | ||
uint8_t | mydelay | ||
) |
Fill the chosen page with a data pattern.
page_num | chosen page (1-X) |
dataPattern | can be set to 0 to FF (not buffer) |
mydelay | optional delay in milliseconds can be set to zero normally. |
void SH110X::OLEDFillScreen | ( | uint8_t | dataPattern, |
uint8_t | delay | ||
) |
Fill the screen NOT the buffer with a datapattern.
dataPattern | can be set to zero to clear screen (not buffer) range 0x00 to 0ff |
delay | in milliseconds can be set to zero normally. |
void SH110X::OLEDInvert | ( | bool | value | ) |
invert the display
value | true invert , false normal |
void SH110X::OLEDReset | ( | void | ) |
Handles OLED reset, if reset pin present on device.
< reset delay in miliseconds
DisplayRet::Ret_Codes_e SH110X::OLEDSetBufferPtr | ( | uint8_t | width, |
uint8_t | height, | ||
std::span< uint8_t > | buffer | ||
) |
sets the buffer pointer to the users screen data buffer
width | width of buffer in pixels |
height | height of buffer in pixels |
buffer | the buffer span |
DisplayRet::Ret_Codes_e SH110X::OLEDupdate | ( | void | ) |
updates the buffer i.e. writes it to the screen
void SH110X::SetDebugMode | ( | bool | debugMode | ) |
setter for debug status
debugMode | true yes on , false off |
void SH110X::SetI2CRetryAttemptsNo | ( | uint8_t | Attempts | ) |
Sets the Number of I2C retry Attempts in event of I2C bus error Set to zero for NO retry attempts.
Attempts | Max number of I2C retry attempts |
void SH110X::SetI2CRetryDelay | ( | uint16_t | Delay | ) |
Sets delay in mS between retry attempts in event of I2C error.
Delay | delay in mS between retry attempts in event of I2C error |
void SH110X::SetI2CTimeout | ( | uint32_t | timeout | ) |
Sets delay the I2C timeout in uS.
timeout | delay in uS |
void SH110X::SetIsConnected | ( | bool | connected | ) |
setter for is connected status
connected | Set device connected , true yes, false no |
|
private |
Init routine for SH1106 OLED.
< Initialisation delay in mS
|
private |
Init routine for SH1107 OLED.
< Initialisation delay in mS
|
private |
is device connected/correct flag
|
private |
for serial debug I2C errors to console flag
|
private |
I2C bus speed in khz datasheet
|
private |
Reset pin only needed of reset pin is present on display
|
private |
i2C port number
|
private |
Maximum number of Retry attempts in event of I2C write error
|
private |
mS Delay, in between Retry attempts in event of I2C error
|
private |
Height of OLED Screen in pixels
|
private |
Enum to hold TFT type
|
private |
Number of byte size pages OLED screen is divided into
|
private |
Width of OLED Screen in pixels
|
private |
I2C address
|
private |
buffer which holds screen data
|
private |
I2C clock GPIO pin
|
private |
I2C data GPIO pin
|
private |
uS delay , I2C timeout
|
private |
the SH1106 display requires a small offset
|
staticconstexpr |
I2C address
|
staticconstexprprivate |
Charge pump control register
|
staticconstexprprivate |
Column address control register
|
staticconstexprprivate |
Command byte command
|
staticconstexprprivate |
Scan from COMN to COM0
|
staticconstexprprivate |
Sets the scan direction of common output
|
staticconstexprprivate |
Data byte command
|
staticconstexprprivate |
Controls DC-DC voltage convertor
|
staticconstexprprivate |
Set entire Display ON
|
staticconstexprprivate |
Set entire Display OFF
|
staticconstexprprivate |
Turns off OLED panel
|
staticconstexprprivate |
Turns on OLED panel
|
staticconstexprprivate |
Inverts Display, no rma rewrite
|
staticconstexprprivate |
Memory mode control register
|
staticconstexprprivate |
Normal Display, no ram rewrite
|
staticconstexprprivate |
Page address control register
|
staticconstexprprivate |
Set segment remap, left or right
|
staticconstexprprivate |
Common signals pad configuration
|
staticconstexprprivate |
Command to set contrast, 256 contrast steps
|
staticconstexprprivate |
Set freq of internal clock
|
staticconstexprprivate |
Mapping of start line to COM lines
|
staticconstexprprivate |
Specify Column address to determine the initial display line or COM0.
|
staticconstexprprivate |
Set higher column address
|
staticconstexprprivate |
Set lower column address
|
staticconstexprprivate |
Set multiplex ration
|
staticconstexprprivate |
Specify page address to load display RAM data to page address
|
staticconstexprprivate |
Duration of precharge period
|
staticconstexprprivate |
Specifies line address to determine the initial display
|
staticconstexprprivate |
Common pad output voltage level deselect stage