Graphic Lcd Library
mikroBasic PRO for ARM provides a library for operating Graphic Lcd 128x64 (with commonly used Samsung KS108/KS107 controller).
For creating a custom set of Glcd images use Glcd Bitmap Editor Tool.
Library Dependency Tree
External dependencies of Graphic Lcd Library
Stellaris
| The following variables must be defined in all projects using Graphic Lcd Library: | Description : | Example : |
|---|---|---|
dim GLCD_D0 as sbit sfr external |
Data 0 line. | dim GLCD_D0 as sbit at GPIO_PORTA_DATA.B0 |
dim GLCD_D1 as sbit sfr external |
Data 1 line. | dim GLCD_D1 as sbit at GPIO_PORTA_DATA.B1 |
dim GLCD_D2 as sbit sfr external |
Data 2 line. | dim GLCD_D2 as sbit at GPIO_PORTA_DATA.B2 |
dim GLCD_D3 as sbit sfr external |
Data 3 line. | dim GLCD_D3 as sbit at GPIO_PORTA_DATA.B3 |
dim GLCD_D4 as sbit sfr external |
Data 4 line. | dim GLCD_D4 as sbit at GPIO_PORTA_DATA.B4 |
dim GLCD_D5 as sbit sfr external |
Data 5 line. | dim GLCD_D5 as sbit at GPIO_PORTA_DATA.B5 |
dim GLCD_D6 as sbit sfr external |
Data 6 line. | dim GLCD_D6 as sbit at GPIO_PORTA_DATA.B6 |
dim GLCD_D7 as sbit sfr external |
Data 7 line. | dim GLCD_D7 as sbit at GPIO_PORTA_DATA.B7 |
dim GLCD_CS1 as sbit sfr external |
Chip Select 1 line. | dim GLCD_CS1 as sbit at GPIO_PORTD_DATA.B0 |
dim GLCD_CS2 as sbit sfr external |
Chip Select 2 line. | dim GLCD_CS2 as sbit at GPIO_PORTD_DATA.B1 |
dim GLCD_RS as sbit sfr external |
Register select line. | dim GLCD_RS as sbit at GPIO_PORTD_DATA.B2 |
dim GLCD_RW as sbit sfr external |
Read/Write line. | dim GLCD_RW as sbit at GPIO_PORTD_DATA.B3 |
dim GLCD_EN as sbit sfr external |
Enable line. | dim GLCD_EN as sbit at GPIO_PORTD_DATA.B4 |
dim GLCD_RST as sbit sfr external |
Reset line. | dim GLCD_RST as sbit at GPIO_PORTD_DATA.B5 |
dim GLCD_D0_Direction as sbit sfr external |
Direction of the Data 0 pin. | dim GLCD_D0_Direction as sbit at GPIO_PORTA_DIR.B0 |
dim GLCD_D1_Direction as sbit sfr external |
Direction of the Data 1 pin. | dim GLCD_D1_Direction as sbit at GPIO_PORTA_DIR.B1 |
dim GLCD_D2_Direction as sbit sfr external |
Direction of the Data 2 pin. | dim GLCD_D2_Direction as sbit at GPIO_PORTA_DIR.B2 |
dim GLCD_D3_Direction as sbit sfr external |
Direction of the Data 3 pin. | dim GLCD_D3_Direction as sbit at GPIO_PORTA_DIR.B3 |
dim GLCD_D4_Direction as sbit sfr external |
Direction of the Data 4 pin. | dim GLCD_D4_Direction as sbit at GPIO_PORTA_DIR.B4 |
dim GLCD_D5_Direction as sbit sfr external |
Direction of the Data 5 pin. | dim GLCD_D5_Direction as sbit at GPIO_PORTA_DIR.B5 |
dim GLCD_D6_Direction as sbit sfr external |
Direction of the Data 6 pin. | dim GLCD_D6_Direction as sbit at GPIO_PORTA_DIR.B6 |
dim GLCD_D7_Direction as sbit sfr external |
Direction of the Data 7 pin. | dim GLCD_D7_Direction as sbit at GPIO_PORTA_DIR.B7 |
dim GLCD_CS1_Direction as sbit sfr external |
Direction of the Chip Select 1 pin. | dim GLCD_CS1_Direction as sbit at GPIO_PORTD_DIR.B0 |
dim GLCD_CS2_Direction as sbit sfr external |
Direction of the Chip Select 2 pin. | dim GLCD_CS2_Direction as sbit at GPIO_PORTD_DIR.B1 |
dim GLCD_RS_Direction as sbit sfr external |
Direction of the Register select pin. | dim GLCD_RS_Direction as sbit at GPIO_PORTD_DIR.B2 |
dim GLCD_RW_Direction as sbit sfr external |
Direction of the Read/Write pin. | dim GLCD_RW_Direction as sbit at GPIO_PORTD_DIR.B3 |
dim GLCD_EN_Direction as sbit sfr external |
Direction of the Enable pin. | dim GLCD_EN_Direction as sbit at GPIO_PORTD_DIR.B4 |
dim GLCD_RST_Direction as sbit sfr external |
Direction of the Reset pin. | dim GLCD_RST_Direction as sbit at GPIO_PORTD_DIR.B5 |
STM32
| The following variables must be defined in all projects using Graphic Lcd Library: | Description : | Example : |
|---|---|---|
dim GLCD_DataPort_Input as word sfr external |
Data Input Port. | dim GLCD_DataPort_Input as word at GPIOE_IDR |
dim GLCD_DataPort_Output as word sfr external |
Data Output Port. | dim GLCD_DataPort_Output as word at GPIOE_ODR |
dim GLCD_CS1 as sbit sfr external |
Chip Select 1 line. | dim GLCD_CS1 as sbit at GPIOE_ODR.B10 |
dim GLCD_CS2 as sbit sfr external |
Chip Select 2 line. | dim GLCD_CS2 as sbit at GPIOE_ODR.B11 |
dim GLCD_RS as sbit sfr external |
Register select line. | dim GLCD_RS as sbit at GPIOE_ODR.B12 |
dim GLCD_RW as sbit sfr external |
Read/Write line. | dim GLCD_RW as sbit at GPIOE_ODR.B13 |
dim GLCD_EN as sbit sfr external |
Enable line. | dim GLCD_EN as sbit at GPIOE_ODR.B15 |
dim GLCD_RST as sbit sfr external |
Reset line. | dim GLCD_RST as sbit at GPIOE_ODR.B8 |
Library Routines
Basic routines:
Advanced routines:
- Glcd_Fill
- Glcd_Dot
- Glcd_Line
- Glcd_V_Line
- Glcd_H_Line
- Glcd_Rectangle
- Glcd_Rectangle_Round_Edges
- Glcd_Rectangle_Round_Edges_Fill
- Glcd_Box
- Glcd_Circle
- Glcd_Circle_Fill
- Glcd_Set_Font
- Glcd_Set_Font_Adv
- Glcd_Set_Ext_Font_Adv
- Glcd_Write_Char
- Glcd_Write_Char_Adv
- Glcd_Write_Text
- Glcd_Write_Text_Adv
- Glcd_Image
- Glcd_Ext_Image
- Glcd_PartialImage
- Glcd_Ext_PartialImage
Glcd_Init
| Prototype |
sub procedure Glcd_Init() |
|---|---|
| Description |
Initializes the Glcd module. Each of the control lines are both port and pin configurable, while data lines must be on a single port (pins <0:7>). |
| Parameters |
None. |
| Returns |
Nothing. |
| Requires |
External dependencies of the library from the top of the page must be defined before using this function. |
| Example |
Stellaris
' Glcd module connections
dim GLCD_D7 as sbit at GPIO_PORTA_DATA.B7
GLCD_D6 as sbit at GPIO_PORTA_DATA.B6
GLCD_D5 as sbit at GPIO_PORTA_DATA.B5
GLCD_D4 as sbit at GPIO_PORTA_DATA.B4
GLCD_D3 as sbit at GPIO_PORTA_DATA.B3
GLCD_D2 as sbit at GPIO_PORTA_DATA.B2
GLCD_D1 as sbit at GPIO_PORTA_DATA.B1
GLCD_D0 as sbit at GPIO_PORTA_DATA.B0
GLCD_D7_Direction as sbit at GPIO_PORTA_DIR.B7
GLCD_D6_Direction as sbit at GPIO_PORTA_DIR.B6
GLCD_D5_Direction as sbit at GPIO_PORTA_DIR.B5
GLCD_D4_Direction as sbit at GPIO_PORTA_DIR.B4
GLCD_D3_Direction as sbit at GPIO_PORTA_DIR.B3
GLCD_D2_Direction as sbit at GPIO_PORTA_DIR.B2
GLCD_D1_Direction as sbit at GPIO_PORTA_DIR.B1
GLCD_D0_Direction as sbit at GPIO_PORTA_DIR.B0
dim GLCD_CS1 as sbit at GPIO_PORTD_DATA.B0
GLCD_CS2 as sbit at GPIO_PORTD_DATA.B1
GLCD_RS as sbit at GPIO_PORTD_DATA.B2
GLCD_RW as sbit at GPIO_PORTD_DATA.B3
GLCD_EN as sbit at GPIO_PORTD_DATA.B4
GLCD_RST as sbit at GPIO_PORTD_DATA.B5
dim GLCD_CS1_Direction as sbit at GPIO_PORTA_DIR.B0
GLCD_CS2_Direction as sbit at GPIO_PORTA_DIR.B1
GLCD_RS_Direction as sbit at GPIO_PORTA_DIR.B2
GLCD_RW_Direction as sbit at GPIO_PORTA_DIR.B3
GLCD_EN_Direction as sbit at GPIO_PORTA_DIR.B4
GLCD_RST_Direction as sbit at GPIO_PORTA_DIR.B5
' End Glcd module connections
...
Glcd_Init()
STM32' Glcd module connections dim GLCD_DataPort_Input as longword at GPIOE_IDR dim GLCD_DataPort_Output as longword at GPIOE_ODR dim GLCD_CS1 as sbit at GPIOE_ODR.B10 dim GLCD_CS2 as sbit at GPIOE_ODR.B11 dim GLCD_RS as sbit at GPIOE_ODR.B12 dim GLCD_RW as sbit at GPIOE_ODR.B13 dim GLCD_EN as sbit at GPIOE_ODR.B15 dim GLCD_RST as sbit at GPIOE_ODR.B8 ' End Glcd module connections ... Glcd_Init() |
| Notes |
None. |
Glcd_Set_Side
| Prototype |
sub procedure Glcd_Set_Side(dim x_pos as byte) |
|---|---|
| Description |
Selects Glcd side. Refer to the Glcd datasheet for detailed explanation. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
The following two lines are equivalent, and both of them select the left side of Glcd: Glcd_Select_Side(0) Glcd_Select_Side(10) |
| Notes |
For side, x axis and page layout explanation see schematic at the bottom of this page. |
Glcd_Set_X
| Prototype |
sub procedure Glcd_Set_X(dim x_pos as byte) |
|---|---|
| Description |
Sets x-axis position to |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
Glcd_Set_X(25) |
| Notes |
For side, x axis and page layout explanation see schematic at the bottom of this page. |
Glcd_Set_Page
| Prototype |
sub procedure Glcd_Set_Page(dim page as byte) |
|---|---|
| Description |
Selects page of the Glcd. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
Glcd_Set_Page(5) |
| Notes |
For side, x axis and page layout explanation see schematic at the bottom of this page. |
Glcd_Read_Data
| Prototype |
sub function Glcd_Read_Data() as byte |
|---|---|
| Description |
Reads data from from the current location of Glcd memory and moves to the next location. |
| Parameters |
None. |
| Returns |
One byte from Glcd memory, formatted as a word (16-bit). |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. Glcd side, x-axis position and page should be set first. See functions Glcd_Set_Side, Glcd_Set_X, and Glcd_Set_Page. |
| Example |
dim data_ as byte ... Glcd_Read_Data() data_ = Glcd_Read_Data() |
| Notes |
This routine needs to be called twice; After the first call, data is placed in the buffer register. After the second call, data is passed from the buffer register to data lines. |
Glcd_Write_Data
| Prototype |
sub procedure Glcd_Write_Data(dim data_ as byte) |
|---|---|
| Returns |
Nothing. |
| Description |
Writes one byte to the current location in Glcd memory and moves to the next location. Parameters :
|
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. Glcd side, x-axis position and page should be set first. See functions Glcd_Set_Side, Glcd_Set_X, and Glcd_Set_Page. |
| Example |
dim data_ as byte ... Glcd_Write_Data(data_) |
Glcd_Set_Ext_Buffer
| Prototype |
sub procedure Glcd_Set_Ext_Buffer(dim getExtDataPtr as ^TGlcd_Get_Ext_Data_Ptr) |
|---|---|
| Returns |
Nothing. |
| Description |
Function sets pointer to the user function which manipulates the external resource. Parameters :
User function prototype should be in the following format: Parameters used in the function have the following meaning :
|
| Requires |
Glcd module needs to be initialized. See the Glcd_Init routine. |
| Example |
Glcd_Set_Ext_Buffer(@ReadExternalBuffer) |
Glcd_Fill
| Prototype |
sub procedure Glcd_Fill(dim pattern as byte) |
|---|---|
| Description |
Fills Glcd memory with the byte To clear the Glcd screen, use To fill the screen completely, use |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
Glcd_Fill(0) ' Clear screen |
| Notes |
None. |
Glcd_Dot
| Prototype |
sub procedure Glcd_Dot(dim x_pos, y_pos, color as byte) |
|---|---|
| Description |
Draws a dot on Glcd at coordinates ( |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Invert the dot in the upper left corner Glcd_Dot(0, 0, 2) |
| Notes |
For x and y axis layout explanation see schematic at the bottom of this page. |
Glcd_Line
| Prototype |
sub procedure Glcd_Line(dim x_start, y_start, x_end, y_end as integer, dim color as byte) |
|---|---|
| Description |
Draws a line on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a line between dots (0,0) and (20,30) Glcd_Line(0, 0, 20, 30, 1) |
| Notes |
None. |
Glcd_V_Line
| Prototype |
sub procedure Glcd_V_Line(dim y_start, y_end, x_pos, color as byte) |
|---|---|
| Description |
Draws a vertical line on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a vertical line between dots (10,5) and (10,25) Glcd_V_Line(5, 25, 10, 1) |
| Notes |
None. |
Glcd_H_Line
| Prototype |
sub procedure Glcd_H_Line(dim x_start, x_end, y_pos, color as byte) |
|---|---|
| Description |
Draws a horizontal line on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a horizontal line between dots (10,20) and (50,20) Glcd_H_Line(10, 50, 20, 1) |
| Notes |
None. |
Glcd_Rectangle
| Prototype |
sub procedure Glcd_Rectangle(dim x_upper_left, y_upper_left, x_bottom_right, y_bottom_right, color as byte) |
|---|---|
| Description |
Draws a rectangle on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a rectangle between dots (5,5) and (40,40) Glcd_Rectangle(5, 5, 40, 40, 1) |
| Notes |
None. |
Glcd_Rectangle_Round_Edges
| Prototype |
sub procedure Glcd_Rectangle_Round_Edges(dim x_upper_left as byte, dim y_upper_left as byte, dim x_bottom_right as byte, dim y_bottom_right as byte, dim radius as byte, dim color as byte) |
|---|---|
| Description |
Draws a rounded edge rectangle on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a rounded edge rectangle between dots (5,5) and (40,40) with the radius of 12 Glcd_Rectangle_Round_Edges(5, 5, 40, 40, 12, 1) |
| Notes |
None. |
Glcd_Rectangle_Round_Edges_Fill
| Prototype |
sub procedure Glcd_Rectangle_Round_Edges_Fill(dim x_upper_left as byte, dim y_upper_left as byte, dim x_bottom_right as byte, dim y_bottom_right as byte, dim radius as byte, dim color as byte) |
|---|---|
| Description |
Draws a filled rounded edge rectangle on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draws a filled rounded edge rectangle between dots (5,5) and (40,40) with the radius of 12 Glcd_Rectangle_Round_Edges_Fill(5, 5, 40, 40, 12, 1) |
| Notes |
None. |
Glcd_Box
| Prototype |
sub procedure Glcd_Box(dim x_upper_left, y_upper_left, x_bottom_right, y_bottom_right, color as byte) |
|---|---|
| Description |
Draws a box on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a box between dots (5,15) and (20,40) Glcd_Box(5, 15, 20, 40, 1) |
| Notes |
None. |
Glcd_Circle
| Prototype |
sub procedure Glcd_Circle(dim x_center, y_center, radius as integer, dim color as byte) |
|---|---|
| Description |
Draws a circle on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a circle with center in (50,50) and radius=10 Glcd_Circle(50, 50, 10, 1) |
| Notes |
None. |
Glcd_Circle_Fill
| Prototype |
sub procedure Glcd_Circle_Fill(dim x_center as integer, dim y_center as integer, dim radius as integer, dim color as byte) |
|---|---|
| Description |
Draws a filled circle on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw a circle with center in (50,50) and radius=10 Glcd_Circle_Fill(50, 50, 10, 1) |
| Notes |
None. |
Glcd_Set_Font
| Prototype |
sub procedure Glcd_Set_Font(dim byref const activeFont as byte, dim aFontWidth, aFontHeight as byte, dim aFontOffs as byte) |
|---|---|
| Description |
Sets font that will be used with Glcd_Write_Char and Glcd_Write_Text routines. |
| Parameters |
The user can use fonts given in the file “__Lib_GLCDFonts” file located in the Uses folder or create his own fonts. List of supported fonts:
For the sake of the backward compatibility, these fonts are supported also:
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Use the custom 5x7 font "myfont" which starts with space (32): Glcd_Set_Font(@myfont, 5, 7, 32) |
| Notes |
None. |
Glcd_Set_Font_Adv
| Prototype |
sub procedure Glcd_Set_Font_Adv(dim activeFont as ^const byte, dim font_color as word, dim font_orientation as byte) |
|---|---|
| Description |
Sets font that will be used with Glcd_Write_Char_Adv and Glcd_Write_Text_Adv routines. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
Glcd_Set_Font_Adv(@myfont, 0, 0) |
| Notes |
None. |
Glcd_Set_Ext_Font_Adv
| Prototype |
sub procedure Glcd_Set_Ext_Font_Adv(dim activeFont as longword, dim font_color as word, dim font_orientation as word) |
|---|---|
| Description |
Sets font that will be used with Glcd_Write_Char_Adv and Glcd_Write_Text_Adv routines. Font is located in an external resource. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
Glcd_Set_Ext_Font_Adv(173296, 5, 7, 32) |
| Notes |
None. |
Glcd_Write_Char
| Prototype |
sub procedure Glcd_Write_Char(dim character, x_pos, page_num, color as byte) |
|---|---|
| Description |
Prints character on the Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. Use Glcd_Set_Font to specify the font for display; if no font is specified, then default |
| Example |
' Write character 'C' on the position 10 inside the page 2:
Glcd_Write_Char('C', 10, 2, 1)
|
| Notes |
For x axis and page layout explanation see schematic at the bottom of this page. |
Glcd_Write_Char_Adv
| Prototype |
sub procedure Glcd_Write_Char_Adv(dim ch, x, y as word) |
|---|---|
| Returns |
Nothing. |
| Description |
Writes a char on the glcd at coordinates (x, y).
|
| Requires |
glcd module needs to be initialized. See the Glcd_Init routine. |
| Example |
Glcd_Write_Char_Adv("A",22,23)
|
Glcd_Write_Text
| Prototype |
sub procedure Glcd_Write_Text(dim byref text as string, dim x_pos, page_num, color as byte) |
|---|---|
| Description |
Prints text on Glcd. |
| Parameters |
The parameter |
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. Use Glcd_Set_Font to specify the font for display; if no font is specified, then default |
| Example |
' Write text "Hello world!" on the position 10 inside the page 2:
Glcd_Write_Text("Hello world!", 10, 2, 1)
|
| Notes |
For x axis and page layout explanation see schematic at the bottom of this page. |
Glcd_Write_Text_Adv
| Prototype |
sub procedure Glcd_Write_Text_Adv(dim byref text as string, dim x, y as word) |
|---|---|
| Returns |
Nothing. |
| Description |
Writes text on the glcd at coordinates (x, y). Parameters :
|
| Requires |
Glcd module needs to be initialized. See the Glcd_Init routine. |
| Example |
Glcd_Write_Text_Adv("GLCD LIBRARY DEMO, WELCOME !", 0, 0)
|
Glcd_Image
| Prototype |
sub procedure Glcd_Image(dim byref constimage as byte) |
|---|---|
| Description |
Displays bitmap on Glcd. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draw image my_image on Glcd Glcd_Image(my_image) |
| Notes |
Use the mikroBasic PRO for ARM integrated Glcd Bitmap Editor, Tools > Glcd Bitmap Editor, to convert image to a constant array suitable for displaying on Glcd. |
Glcd_Ext_Image
| Prototype |
sub procedure Glcd_Ext_Image(dim image as longword) |
|---|---|
| Description |
Displays a bitmap from an external resource. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
Glcd_Ext_Image(153608) |
| Notes |
Use the mikroBasic PRO for ARM integrated Glcd Bitmap Editor, Tools > Glcd Bitmap Editor, to convert image to a constant array suitable for displaying on Glcd. |
Glcd_PartialImage
| Prototype |
sub procedure Glcd_PartialImage(dim x_left, y_top, width, height, picture_width, picture_height as word, const image as ^byte) |
|---|---|
| Description |
Displays a partial area of the image on a desired location. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
' Draws a 10x15 part of the image starting from the upper left corner on the coordinate (10,12). Original image size is 16x32. Glcd_PartialImage(10, 12, 10, 15, 16, 32, @image) |
| Notes |
Use the mikroBasic PRO for ARM integrated Glcd Bitmap Editor, Tools > Glcd Bitmap Editor, to convert image to a constant array suitable for displaying on Glcd. |
Glcd_Ext_PartialImage
| Prototype |
sub procedure Glcd_Ext_PartialImage(dim x_left, y_top, width, height, picture_width, picture_height as word, dim image as longword) |
|---|---|
| Description |
Displays a partial area of the image, located on an external resource, on a desired location of the screen. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Glcd needs to be initialized, see Glcd_Init routine. |
| Example |
Glcd_Ext_PartialImage(10, 12, 10, 15, 16, 32, 0) |
| Notes |
Use the mikroBasic PRO for ARM integrated Glcd Bitmap Editor, Tools > Glcd Bitmap Editor, to convert image to a constant array suitable for displaying on Glcd. |
Library Example
Stellaris
program GLCD_Test
' Glcd module connections
dim GLCD_D7 as sbit at GPIO_PORTA_DATA.B7
GLCD_D6 as sbit at GPIO_PORTA_DATA.B6
GLCD_D5 as sbit at GPIO_PORTA_DATA.B5
GLCD_D4 as sbit at GPIO_PORTA_DATA.B4
GLCD_D3 as sbit at GPIO_PORTA_DATA.B3
GLCD_D2 as sbit at GPIO_PORTA_DATA.B2
GLCD_D1 as sbit at GPIO_PORTA_DATA.B1
GLCD_D0 as sbit at GPIO_PORTA_DATA.B0
GLCD_D7_Direction as sbit at GPIO_PORTA_DIR.B7
GLCD_D6_Direction as sbit at GPIO_PORTA_DIR.B6
GLCD_D5_Direction as sbit at GPIO_PORTA_DIR.B5
GLCD_D4_Direction as sbit at GPIO_PORTA_DIR.B4
GLCD_D3_Direction as sbit at GPIO_PORTA_DIR.B3
GLCD_D2_Direction as sbit at GPIO_PORTA_DIR.B2
GLCD_D1_Direction as sbit at GPIO_PORTA_DIR.B1
GLCD_D0_Direction as sbit at GPIO_PORTA_DIR.B0
dim GLCD_CS1 as sbit at GPIO_PORTD_DATA.B0
GLCD_CS2 as sbit at GPIO_PORTD_DATA.B1
GLCD_RS as sbit at GPIO_PORTD_DATA.B2
GLCD_RW as sbit at GPIO_PORTD_DATA.B3
GLCD_EN as sbit at GPIO_PORTD_DATA.B4
GLCD_RST as sbit at GPIO_PORTD_DATA.B5
dim GLCD_CS1_Direction as sbit at GPIO_PORTA_DIR.B0
GLCD_CS2_Direction as sbit at GPIO_PORTA_DIR.B1
GLCD_RS_Direction as sbit at GPIO_PORTA_DIR.B2
GLCD_RW_Direction as sbit at GPIO_PORTA_DIR.B3
GLCD_EN_Direction as sbit at GPIO_PORTA_DIR.B4
GLCD_RST_Direction as sbit at GPIO_PORTA_DIR.B5
' End Glcd module connections
dim counter as byte
someText as char[18]
sub procedure Delay2S() ' 2 seconds delay function
Delay_ms(2000)
end sub
main:
Glcd_Init() ' Initialize GLCD
Glcd_Fill(0x00) ' Clear GLCD
while TRUE
Glcd_Image(@truck_bmp) ' Draw image
Delay2S() delay2S()
#ENDIF
Glcd_Fill(0x00) ' Clear Glcd
Glcd_Box(62,40,124,63,1) ' Draw box
Glcd_Rectangle(5,5,84,35,1) ' Draw rectangle
Glcd_Line(0, 0, 127, 63, 1) ' Draw line
Delay2S()
counter = 5
while (counter <= 59) ' Draw horizontal and vertical lines
Delay_ms(250)
Glcd_V_Line(2, 54, counter, 1)
Glcd_H_Line(2, 120, counter, 1)
Counter = counter + 5
wend
Delay2S()
Glcd_Fill(0x00) ' Clear Glcd
Glcd_Set_Font(@Character8x7, 8, 7, 32) ' Choose font "Character8x7"
Glcd_Write_Text("mikroE", 1, 7, 2) ' Write string
for counter = 1 to 10 ' Draw circles
Glcd_Circle(63,32, 3*counter, 1)
next counter
Delay2S()
Glcd_Box(12,20, 70,57, 2) ' Draw box
Delay2S()
Glcd_Fill(0xFF) ' Fill Glcd
Glcd_Set_Font(@Character8x7, 8, 7, 32) ' Change font
someText = "8x7 Font"
Glcd_Write_Text(someText, 5, 0, 2) ' Write string
delay2S()
Glcd_Set_Font(@System3x5, 3, 5, 32) ' Change font
someText = "3X5 CAPITALS ONLY"
Glcd_Write_Text(someText, 60, 2, 2) ' Write string
delay2S()
Glcd_Set_Font(@font5x7, 5, 7, 32) ' Change font
someText = "5x7 Font"
Glcd_Write_Text(someText, 5, 4, 2) ' Write string
delay2S()
Glcd_Set_Font(@FontSystem5x7_v2, 5, 7, 32) ' Change font
someText = "5x7 Font (v2)"
Glcd_Write_Text(someText, 51, 6, 2) ' Write string
delay2S()
wend
end.
STM32
program GLCD_Test
' Glcd module connections
dim GLCD_DataPort_Input as longword at GPIOE_IDR
dim GLCD_DataPort_Output as longword at GPIOE_ODR
dim GLCD_CS1 as sbit at GPIOE_ODR.B10
dim GLCD_CS2 as sbit at GPIOE_ODR.B11
dim GLCD_RS as sbit at GPIOE_ODR.B12
dim GLCD_RW as sbit at GPIOE_ODR.B13
dim GLCD_EN as sbit at GPIOE_ODR.B15
dim GLCD_RST as sbit at GPIOE_ODR.B8
' End Glcd module connections
dim counter as byte
someText as char[18]
sub procedure Delay2S() ' 2 seconds delay function
Delay_ms(2000)
end sub
main:
Glcd_Init() ' Initialize GLCD
Glcd_Fill(0x00) ' Clear GLCD
while TRUE
Glcd_Image(@truck_bmp) ' Draw image
Delay2s() Delay2s()
Glcd_fill(0x00) ' Clear GLCD
Glcd_PartialImage(0,0,68,30,128,64,@truck_bmp) ' Partial image
Delay_ms(500)
Glcd_PartialImage(24,16,68,30,128,64,@truck_bmp)
Delay_ms(500)
Glcd_PartialImage(56,34,68,30,128,64,@truck_bmp)
Delay2s() Delay2s()
Glcd_Fill(0x00) ' Clear GLCD
Glcd_Box(62,40,124,56,1) ' Draw box
Glcd_Rectangle(5,5,84,35,1) ' Draw rectangle
Delay_ms(1000)
Glcd_Rectangle_Round_Edges(2,2,87,38,7,1)
Delay_ms(1000)
Glcd_Rectangle_Round_Edges_Fill(8,8,81,32,12,1)
Delay_ms(1000)
Glcd_Line(0, 0, 127, 63, 1) ' Draw line
Delay2s()
counter = 5
while (counter <= 59) ' Draw horizontal and vertical lines
Delay_ms(250)
Glcd_V_Line(2, 54, counter, 1)
Glcd_H_Line(2, 120, counter, 1)
counter = counter + 5
wend
Delay2S()
Glcd_Fill(0x00) ' Clear GLCD
Glcd_Set_Font(@Font_Glcd_Character8x7, 8, 7, 32) ' Choose font "Character8x7"
Glcd_Write_Text("mikroE", 1, 7, 2) ' Write string
for counter = 1 to 10 ' Draw circles
Glcd_Circle(63,32, 3*counter, 1)
next counter
Delay2S()
Glcd_Circle_Fill(63,32, 30, 1) ' Draw circles
Delay2s()
Glcd_Box(10,20, 70,63, 2) ' Draw box
Delay2s()
Glcd_Fill(0xFF) ' Fill GLCD
Glcd_Set_Font(@Font_Glcd_Character8x7, 8, 7, 32) ' Change font
someText = "8x7 Font"
Glcd_Write_Text(someText, 5, 0, 2) ' Write string
Delay2s()
Glcd_Set_Font(@Font_Glcd_System3x5, 3, 5, 32) ' Change font
someText = "3X5 CAPITALS ONLY"
Glcd_Write_Text(someText, 60, 2, 2) ' Write string
Delay2s()
Glcd_Set_Font(@Font_Glcd_5x7, 5, 7, 32) ' Change font
someText = "5x7 Font"
Glcd_Write_Text(someText, 5, 4, 2) ' Write string
Delay2s()
Glcd_Set_Font(@Font_Glcd_System5x7, 5, 7, 32) ' Change font
someText = "5x7 Font (v2)"
Glcd_Write_Text(someText, 50, 6, 2) ' Write string
Delay2s()
wend
end.
What do you think about this topic ? Send us feedback!




