Difference between revisions of "Component: GLCD (SH1106) SPI (Graphical Monochrome)"
From Flowcode Help
Jump to navigationJump to search| (16 intermediate revisions by 2 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 31: | Line 39: | ||
| − | |||
| − | |||
| Line 49: | Line 55: | ||
| − | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==Macro reference== | ||
| + | |||
| + | ===BPlot=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''BPlot''' | 
| |- | |- | ||
| − | | colspan="2" |  | + | | colspan="2" | Sets a pixel with the current background 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'' | ||
| |} | |} | ||
| + | ===ClearDisplay=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ClearDisplay''' | 
| |- | |- | ||
| − | | colspan="2" |  | + | | 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-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 97: | Line 109: | ||
| + | ===DrawArc=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DrawArc''' | 
| + | |- | ||
| + | | 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- | + | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | 
| − | | width="90%" |  | + | | width="90%" | Y | 
| |- | |- | ||
| − | | colspan="2" |  | + | | colspan="2" | Center 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%" | 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" |  | + | | colspan="2" | Angle to end drawing, in degrees  | 
| |- | |- | ||
| | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| − | | width="90%" |  | + | | width="90%" | Resolution | 
| |- | |- | ||
| − | | colspan="2" |  | + | | 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 135: | Line 163: | ||
| + | ===DrawCircle=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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 168: | Line 202: | ||
| + | ===DrawEllipse=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| Line 211: | Line 246: | ||
| + | ===DrawLine=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DrawLine''' | 
| |- | |- | ||
| − | | colspan="2" |  | + | | colspan="2" | Draws a line with the current foreground colour from pixel location X1, Y1 to pixel location X2, Y2.  | 
| |- | |- | ||
| |- | |- | ||
| Line 226: | Line 262: | ||
| | 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 234: | Line 280: | ||
| + | ===DrawRectangle=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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" |   | ||
| + | |- | ||
| + | | 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 252: | Line 324: | ||
| + | ===DrawRoundedRectangle=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DrawRoundedRectangle''' | 
| |- | |- | ||
| − | | colspan="2" |  | + | | colspan="2" | Draws a rectangle with rounded corners  | 
| |- | |- | ||
| |- | |- | ||
| Line 269: | Line 342: | ||
| |- | |- | ||
| | 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 275: | Line 373: | ||
| + | ===Initialise=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' | 
| + | |- | ||
| + | | 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="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Plot''' | ||
| |- | |- | ||
| − | | colspan="2" |  | + | | 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'' | ||
| |} | |} | ||
| + | ===Print=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| Line 336: | Line 450: | ||
| + | ===PrintNumber=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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 349: | Line 489: | ||
| + | ===ReadFontStat=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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'' | ||
| |} | |} | ||
| + | ===ReadFontWidth=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| − | |  | + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | 
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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 405: | Line 556: | ||
| + | ===SetContrast=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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 423: | Line 575: | ||
| + | ===SetDisplayOrientation=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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 441: | Line 594: | ||
| + | ===SetFontScaler=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| − | |  | + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | 
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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 484: | Line 656: | ||
| + | ===Write_Data=== | ||
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| |- | |- | ||
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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'' | ||
| |} | |} | ||
| − | |||
| − | |||
| Line 533: | Line 709: | ||
| | 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 626: | Line 802: | ||
| | 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" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
| Line 651: | Line 827: | ||
| |- | |- | ||
| | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
| − | | width="90%" |  | + | | width="90%" | Physical Orientation | 
| |- | |- | ||
| − | | colspan="2" |  | + | | colspan="2" | Rotates the simulated canvas to match the orientation of real world hardware.  | 
| |- | |- | ||
| | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
| Line 679: | Line 855: | ||
| | 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:13, 22 October 2025
| Author | Matrix Ltd | 
| Version | 13.0 | 
| Category | Graphical Monochrome | 
Contents
- 1 GLCD (SH1106) SPI component
- 2 Version information
- 3 Detailed description
- 4 Examples
- 5 Macro reference
- 5.1 BPlot
- 5.2 ClearDisplay
- 5.3 DrawArc
- 5.4 DrawCircle
- 5.5 DrawEllipse
- 5.6 DrawLine
- 5.7 DrawRectangle
- 5.8 DrawRoundedRectangle
- 5.9 Initialise
- 5.10 Plot
- 5.11 Print
- 5.12 PrintNumber
- 5.13 ReadFontStat
- 5.14 ReadFontWidth
- 5.15 SetBackgroundColour
- 5.16 SetContrast
- 5.17 SetDisplayOrientation
- 5.18 SetFontScaler
- 5.19 SetForegroundColour
- 5.20 Write_Command
- 5.21 Write_Data
 
- 6 Property reference
- 7 Component Source Code
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. | |
|  - UINT | X1 | 
|  - UINT | Y1 | 
|  - VOID | Return | 
ClearDisplay
|   | ClearDisplay | 
| This macro clears the display of any previous output by overwriting the entire display with the background colour. | |
|  - VOID | Return | 
DrawArc
DrawCircle
DrawEllipse
DrawLine
|   | DrawLine | 
| Draws a line with the current foreground colour from pixel location X1, Y1 to pixel location X2, Y2. | |
|  - UINT | X1 | 
|  - UINT | Y1 | 
|  - UINT | X2 | 
|  - UINT | Y2 | 
|  - VOID | 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. | |
|  - VOID | Return | 
Plot
|   | Plot | 
| Sets a pixel with the current foreground colour at pixel location X, Y. | |
|  - UINT | X1 | 
|  - UINT | Y1 | 
|  - VOID | Return | 
PrintNumber
ReadFontStat
|   | ReadFontStat | 
| Gets a stat from the selected embedded ASCII font data. | |
|  - BYTE | Font | 
| Font selection range: 0 to (NumFonts - 1) | |
|  - BYTE | Index | 
| 0=SpaceWidth, 1=PixelHeight | |
|  - BYTE | Return | 
ReadFontWidth
SetBackgroundColour
|   | SetBackgroundColour | 
| Specifies the colour of the foreground | |
|  - BYTE | PixelColour | 
| 0=White, 1=Black | |
|  - VOID | Return | 
SetContrast
|   | SetContrast | 
| Set the contrast level from 0 to 255 | |
|  - BYTE | ContrastLevel | 
|  - VOID | Return | 
SetDisplayOrientation
SetFontScaler
SetForegroundColour
|   | SetForegroundColour | 
| Specifies the colour of the foreground. | |
|  - BYTE | PixelColour | 
| 0=White, 1=Black | |
|  - VOID | Return | 
Write_Command
|   | Write_Command | 
|  - BYTE | Command | 
|  - VOID | Return | 
Write_Data
|   | Write_Data | 
|  - BYTE | data | 
|  - VOID | 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












