Component: GLCD (SH1106) SPI (Graphical Monochrome): Difference between revisions
Appearance
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (17 intermediate revisions by 3 users not shown) | |||
| Line 5: | Line 5: | ||
|- | |- | ||
| width="20%" style="color:gray;" | Version | | width="20%" style="color:gray;" | Version | ||
| | | 13.0 | ||
|- | |- | ||
| width="20%" style="color:gray;" | Category | | width="20%" style="color:gray;" | Category | ||
| Line 15: | Line 15: | ||
Graphical display component designed to work with the SH1106 type monochrome displays. Transfers data using a 4-wire SPI interface. | Graphical display component designed to work with the SH1106 type monochrome displays. Transfers data using a 4-wire SPI interface. | ||
== | ==Version information== | ||
Library Version, Component Version, Date, Author, Info | |||
11, 1.0, 22-07-24, BR, Added DrawArc and DrawRoundedRectangle functions | |||
13, 1.0, 18-06-25, MW, Updated fonts to new type and added SetContrast function | |||
==Detailed description== | ==Detailed description== | ||
Click here for an [[GLCD|in depth guide to graphical LCDs]] using Flowcode. | |||
Information on the Fonts available for this component are available here. [[Component:_ID_1b08885c_807e_4631_930e_a4fef06159dc|GLCD Font Subcomponent]] | |||
==Examples== | |||
| Line 43: | Line 46: | ||
| Line 54: | Line 52: | ||
''<span style="color:red;">No additional examples</span>'' | |||
| Line 66: | Line 65: | ||
| Line 79: | Line 71: | ||
==Macro reference== | ==Macro reference== | ||
{| class="wikitable | ===BPlot=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''BPlot''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets a pixel with the current background colour at pixel location X, Y. | ||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | X1 | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Y1 | |||
|- | |- | ||
| colspan="2" | | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" | | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |||
===ClearDisplay=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" class="mtx-class-macrohead" | '''ClearDisplay''' | |||
|- | |- | ||
| | | colspan="2" | This macro clears the display of any previous output by overwriting the entire display with the background colour. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===DrawArc=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''DrawArc''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Draws an arc either as an outline or as a filled object. | ||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | X | |||
|- | |||
| colspan="2" | Center X coordinate | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Y | |||
|- | |||
| colspan="2" | Center Y coordinate | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Radius | |||
|- | |||
| colspan="2" | Radius, distance of edge from the centre coordinates | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT | |||
| width="90%" | StartAngle | |||
|- | |||
| colspan="2" | Angle to start drawing, in degrees | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT | |||
| width="90%" | EndAngle | |||
|- | |||
| colspan="2" | Angle to end drawing, in degrees | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Resolution | |||
|- | |- | ||
| colspan="2" | Number of lines to draw from the center to the outer edge, 0=Fill | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Transparent | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Chooses the transparency - 0 = Arc contains background colour, 1 = Arc contains previous pixel data. | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Solid | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Chooses to fill with colour - 0 = Arc transparency data, 1 = Arc contains foreground colour. | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 125: | Line 163: | ||
{| class="wikitable" | ===DrawBezier=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''DrawBezier''' | |||
|- | |||
| colspan="2" | Draws a quadratic Bezier curve with the current foreground colour from pixel location X0, Y0 to pixel location X2, Y2 using control point CX, CY. | |||
|- | |- | ||
|- | |- | ||
| colspan="2" | | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | X0 | |||
|- | |||
| colspan="2" | Start X coordinate | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Y0 | |||
|- | |- | ||
| colspan="2" | Start Y coordinate | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | CX | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Control point X coordinate | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | CY | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Control point Y coordinate | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | X2 | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | End X coordinate | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | Y2 | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | End Y coordinate | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | Resolution | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Number of segments to approximate the curve, 0 chooses an automatic value based on curve size. | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 163: | Line 212: | ||
{| class="wikitable | ===DrawCircle=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''DrawCircle''' | ||
|- | |- | ||
| colspan="2" | Draws a | | colspan="2" | Draws a circle object on the display with the center of the circle at the location X,Y | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | X | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | X Coordinate for the center of the circle | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | Y | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Y coordinate for the center of the circle | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | Radius | ||
|- | |||
| colspan="2" | Radius of the circle specified in pixels | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Transparent | |||
|- | |- | ||
| colspan="2" | | | colspan="2" | 0=Fill inside circle using background colour / 1=Draw outer circle only | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Solid | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | 0=Use Transparent Setting / 1=Fill with foreground colour | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 196: | Line 251: | ||
{| class="wikitable | ===DrawEllipse=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''DrawEllipse''' | ||
|- | |- | ||
| colspan="2" | Draws an ellipse object on the display with the center of the ellipse at the location X,Y | | colspan="2" | Draws an ellipse object on the display with the center of the ellipse at the location X,Y | ||
| Line 239: | Line 295: | ||
{| class="wikitable | ===DrawLine=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''DrawLine''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Draws a line with the current foreground colour from pixel location X1, Y1 to pixel location X2, Y2. | ||
|- | |- | ||
|- | |- | ||
| Line 254: | Line 311: | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | Y1 | | width="90%" | Y1 | ||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | X2 | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Y2 | |||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 262: | Line 329: | ||
{| class="wikitable" | ===DrawRectangle=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''DrawRectangle''' | |||
|- | |||
| colspan="2" | Draws a rectangle with the current foreground colour from pixel loaction X1, Y1 to pixel location X2, Y2 | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | X1 | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Y1 | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | X2 | |||
|- | |- | ||
| | | colspan="2" | | ||
|- | |- | ||
| colspan="2" | | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | Y2 | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Transparent | |||
|- | |- | ||
| colspan="2" | Chooses the transparency of the box - 0 = Box contains background colour, 1 = Box contains previous pixel data. | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Solid | ||
|- | |- | ||
| colspan="2" | 0= | | colspan="2" | Chooses to fill the box with colour - 0 = Box contains transparency data, 1 = Box contains foreground colour. | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 280: | Line 373: | ||
{| class="wikitable | ===DrawRoundedRectangle=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''DrawRoundedRectangle''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Draws a rectangle with rounded corners | ||
|- | |- | ||
|- | |- | ||
| Line 297: | Line 391: | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | X2 | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Y2 | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Radius | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Transparent | |||
|- | |||
| colspan="2" | Chooses the transparency of the box - 0 = Box contains background colour, 1 = Box contains previous pixel data. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Solid | |||
|- | |||
| colspan="2" | Chooses to fill the box with colour - 0 = Box contains transparency data, 1 = Box contains foreground colour. | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 303: | Line 422: | ||
{| class="wikitable | ===Initialise=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called. | ||
|- | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===Plot=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''Plot''' | |||
|- | |||
| colspan="2" | Sets a pixel with the current foreground colour at pixel location X, Y. | |||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | X1 | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | Y1 | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===Print=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Print''' | ||
|- | |- | ||
| colspan="2" | This macro prints a string of characters to the Graphical LCD. | | colspan="2" | This macro prints a string of characters to the Graphical LCD. | ||
| Line 364: | Line 499: | ||
{| class="wikitable" | ===PrintNumber=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''PrintNumber''' | |||
|- | |- | ||
| | | colspan="2" | This macro prints a decimal number to the Graphical LCD. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT | |||
| width="90%" | Number | |||
|- | |||
| colspan="2" | Byte or Integer number to send to the display. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | X | |||
|- | |||
| colspan="2" | X pixel coordinate to set the output string position. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Y | |||
|- | |||
| colspan="2" | Y pixel coordinate to set the output string position. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Font | |||
|- | |||
| colspan="2" | Range: 0 to 31 - 0=5x8, 1=10x8, 2=10x16, 3=5x16, 4-31=Extended Sizes | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Transparent | |||
|- | |||
| colspan="2" | Specifies if the background of the text is drawn - 0 = Background colour is drawn, 1 = Background colour not drawn. | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 377: | Line 538: | ||
{| class="wikitable" | ===ReadFontStat=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''ReadFontStat''' | |||
|- | |||
| colspan="2" | Gets a stat from the selected embedded ASCII font data. | |||
|- | |- | ||
|- | |- | ||
| | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | Font | |||
|- | |- | ||
| colspan="2" | Font selection range: 0 to (NumFonts - 1) | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Index | ||
|- | |- | ||
| colspan="2" | 0= | | colspan="2" | 0=SpaceWidth, 1=PixelHeight | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===ReadFontWidth=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReadFontWidth''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Reads the number of pixel columns used in the selected font | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Font | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Font selection range: 0 to (NumFonts - 1) | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Character | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | ASCII character to get the pixel width e.g. 'A' or 65 | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |||
===SetBackgroundColour=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" class="mtx-class-macrohead" | '''SetBackgroundColour''' | |||
|- | |- | ||
| | | colspan="2" | Specifies the colour of the foreground | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | PixelColour | ||
|- | |- | ||
| colspan="2" | 0= | | colspan="2" | 0=White, 1=Black | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 433: | Line 605: | ||
{| class="wikitable | ===SetContrast=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetContrast''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Set the contrast level from 0 to 255 | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | ContrastLevel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 451: | Line 624: | ||
{| class="wikitable | ===SetDisplayOrientation=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDisplayOrientation''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Controls the way data is printed out on the display allowing multiple different viewing orientations. Default is 0. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Orientation | ||
|- | |- | ||
| colspan="2" | 0= | | colspan="2" | 0=Default, 1=90°CW, 2=180°CW, 3=270°CW | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 469: | Line 643: | ||
{| class="wikitable | ===SetFontScaler=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetFontScaler''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Allows the fonts to be scaled up by multiplying the number of pixels on the X and Y. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | ScaleX | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the horizontal scale of the font, default 1 | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | ScaleY | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the vertical scale of the font, default 1 | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" | | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |||
===SetForegroundColour=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" class="mtx-class-macrohead" | '''SetForegroundColour''' | |||
|- | |- | ||
| | | colspan="2" | Specifies the colour of the foreground. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | PixelColour | ||
|- | |||
| colspan="2" | 0=White, 1=Black | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===Write_Command=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''Write_Command''' | |||
|- | |||
| colspan="2" | | |||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Command | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 512: | Line 705: | ||
{| class="wikitable | ===Write_Data=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Write_Data''' | ||
|- | |||
| colspan="2" | | |||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | data | |||
|- | |||
| colspan="2" | | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Dimensions | ||
|- | |- | ||
|- | |- | ||
| Line 549: | Line 746: | ||
| colspan="2" | Heigt of gLCD canvas measured in pixels. | | colspan="2" | Heigt of gLCD canvas measured in pixels. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Colour | ||
|- | |- | ||
|- | |- | ||
| Line 561: | Line 758: | ||
| width="90%" | Foreground Color | | width="90%" | Foreground Color | ||
|- | |- | ||
| colspan="2" | Specifies the initial foreground color. | | colspan="2" | Specifies the initial foreground color. R,G,and B must be the same value or will default to white | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type-1-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-1-icon.png]] | ||
| Line 568: | Line 765: | ||
| colspan="2" | Specifies the initial background color. | | colspan="2" | Specifies the initial background color. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Bit Depth | ||
|- | |- | ||
|- | |- | ||
| Line 592: | Line 789: | ||
| colspan="2" | Number of bits of Blue colour depth on the display | | colspan="2" | Number of bits of Blue colour depth on the display | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Connections | ||
|- | |- | ||
|- | |- | ||
| Line 636: | Line 833: | ||
| colspan="2" | Reset pin on the display, used during initialise to force a clean startup of the display | | colspan="2" | Reset pin on the display, used during initialise to force a clean startup of the display | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Fonts | ||
|- | |- | ||
|- | |- | ||
| Line 645: | Line 842: | ||
| colspan="2" | Specifies the number of fonts available to use on the display. | | colspan="2" | Specifies the number of fonts available to use on the display. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Font 0 | ||
|- | |- | ||
|- | |- | ||
| Line 654: | Line 851: | ||
| colspan="2" | Font picker to decide which font to use on your display. | | colspan="2" | Font picker to decide which font to use on your display. | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type- | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
| width="90%" | | | width="90%" | Bytes Required | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Number of bytes required in program memory to store the selected font. | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-type- | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
| width="90%" | | | width="90%" | Character Spacing | ||
|- | |- | ||
| colspan="2" | Sets the number of | | colspan="2" | Sets the number of blank pixels between each character when printing text. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Simulation | ||
|- | |- | ||
|- | |- | ||
| Line 688: | Line 885: | ||
| colspan="2" | Allows the communications to be simulated to either see the waveforms on the data recorder or to drive an injector component. | | colspan="2" | Allows the communications to be simulated to either see the waveforms on the data recorder or to drive an injector component. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Communications | ||
|- | |- | ||
|- | |- | ||
| Line 707: | Line 904: | ||
| colspan="2" | | | colspan="2" | | ||
|} | |} | ||
==Component Source Code== | |||
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_GLCD_SH1106_SPI.fcfx FC_Comp_Source_GLCD_SH1106_SPI.fcfx] | |||
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_GLCD_SH1106_SPI.fcfx FC_Comp_Source_GLCD_SH1106_SPI.fcfx] | |||
Latest revision as of 14:36, 13 July 2026
| Author | Matrix Ltd |
| Version | 13.0 |
| Category | Graphical Monochrome |
GLCD (SH1106) SPI component
Graphical display component designed to work with the SH1106 type monochrome displays. Transfers data using a 4-wire SPI interface.
Version information
Library Version, Component Version, Date, Author, Info 11, 1.0, 22-07-24, BR, Added DrawArc and DrawRoundedRectangle functions 13, 1.0, 18-06-25, MW, Updated fonts to new type and added SetContrast function
Detailed description
Click here for an in depth guide to graphical LCDs using Flowcode.
Information on the Fonts available for this component are available here. GLCD Font Subcomponent
Examples
No additional examples
Macro reference
BPlot
| BPlot | |
| Sets a pixel with the current background colour at pixel location X, Y. | |
| X1 | |
| Y1 | |
| Return | |
ClearDisplay
| ClearDisplay | |
| This macro clears the display of any previous output by overwriting the entire display with the background colour. | |
| Return | |
DrawArc
DrawBezier
DrawCircle
DrawEllipse
DrawLine
| DrawLine | |
| Draws a line with the current foreground colour from pixel location X1, Y1 to pixel location X2, Y2. | |
| X1 | |
| Y1 | |
| X2 | |
| Y2 | |
| Return | |
DrawRectangle
DrawRoundedRectangle
Initialise
| Initialise | |
| The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called. | |
| Return | |
Plot
| Plot | |
| Sets a pixel with the current foreground colour at pixel location X, Y. | |
| X1 | |
| Y1 | |
| Return | |
PrintNumber
ReadFontStat
| ReadFontStat | |
| Gets a stat from the selected embedded ASCII font data. | |
| Font | |
| Font selection range: 0 to (NumFonts - 1) | |
| Index | |
| 0=SpaceWidth, 1=PixelHeight | |
| Return | |
ReadFontWidth
SetBackgroundColour
| SetBackgroundColour | |
| Specifies the colour of the foreground | |
| PixelColour | |
| 0=White, 1=Black | |
| Return | |
SetContrast
| SetContrast | |
| Set the contrast level from 0 to 255 | |
| ContrastLevel | |
| Return | |
SetDisplayOrientation
SetFontScaler
SetForegroundColour
| SetForegroundColour | |
| Specifies the colour of the foreground. | |
| PixelColour | |
| 0=White, 1=Black | |
| Return | |
Write_Command
| Write_Command | |
| Command | |
| Return | |
Write_Data
| Write_Data | |
| data | |
| Return | |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_GLCD_SH1106_SPI.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_GLCD_SH1106_SPI.fcfx