Description: Library to control a QVGA TFT connected to SPI. You can use printf to print text The lib can handle different fonts, draw lines, circles, rect and bmp
SPI_TFT Class Reference
Display control class, based on GraphicsDisplay and TextDisplay. More...
#include <SPI_TFT.h>
Inherits GraphicsDisplay.
Public Member Functions | |
| SPI_TFT (PinName mosi, PinName miso, PinName sclk, PinName cs, PinName reset, const char *name="TFT") | |
| Create a SPI_TFT object connected to SPI and two pins. | |
| virtual int | width () |
| Get the width of the screen in pixel. | |
| virtual int | height () |
| Get the height of the screen in pixel. | |
| virtual void | pixel (int x, int y, int colour) |
| Draw a pixel at x,y with color. | |
| void | circle (int x, int y, int r, int colour) |
| draw a circle | |
| void | fillcircle (int x, int y, int r, int colour) |
| draw a filled circle | |
| void | line (int x0, int y0, int x1, int y1, int colour) |
| draw a 1 pixel line | |
| void | rect (int x0, int y0, int x1, int y1, int colour) |
| draw a rect | |
| void | fillrect (int x0, int y0, int x1, int y1, int colour) |
| draw a filled rect | |
| virtual void | locate (int x, int y) |
| setup cursor position | |
| virtual void | cls (void) |
| Fill the screen with _backgroun color. | |
| virtual int | columns (void) |
| calculate the max number of char in a line | |
| virtual int | rows (void) |
| calculate the max number of columns | |
| virtual int | _putc (int value) |
| put a char on the screen | |
| virtual void | character (int x, int y, int c) |
| draw a character on given position out of the active font to the TFT | |
| void | Bitmap (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *bitmap) |
| paint a bitmap on the TFT | |
| int | BMP_16 (unsigned int x, unsigned int y, const char *Name_BMP) |
| paint a 16 bit BMP from local filesytem on the TFT (slow) | |
| void | set_font (unsigned char *f) |
| select the font to use | |
| void | set_orientation (unsigned int o) |
| Set the orientation of the screen x,y: 0,0 is always top left. | |
| virtual bool | claim (FILE *stream) |
| redirect output from a stream (stoud, sterr) to display | |
Protected Member Functions | |
| void | WindowMax (void) |
| Set draw window region to whole screen. | |
| void | hline (int x0, int x1, int y, int colour) |
| draw a horizontal line | |
| void | vline (int y0, int y1, int x, int colour) |
| draw a vertical line | |
| virtual void | window (unsigned int x, unsigned int y, unsigned int w, unsigned int h) |
| Set draw window region. | |
| void | tft_reset () |
| Init the HX8347D controller. | |
| void | wr_dat (unsigned char value) |
| Write data to the LCD controller. | |
| void | wr_cmd (unsigned char value) |
| Write a command the LCD controller. | |
| void | wr_dat_only (unsigned short dat) |
| Start data sequence to the LCD controller. | |
| unsigned short | rd_dat (void) |
| Read data from the LCD controller. | |
| void | wr_reg (unsigned char reg, unsigned char val) |
| Write a value to the to a LCD register. | |
| unsigned short | rd_reg (unsigned char reg) |
| Read a LCD register. | |
Detailed Description
Display control class, based on GraphicsDisplay and TextDisplay.
Example:
#include "stdio.h" #include "mbed.h" #include "SPI_TFT.h" #include "string" #include "Arial12x12.h" #include "Arial24x23.h" // the TFT is connected to SPI pin 5-7 SPI_TFT TFT(p5, p6, p7, p8, p15,"TFT"); // mosi, miso, sclk, cs, reset int main() { TFT.claim(stdout); // send stdout to the TFT display //TFT.claim(stderr); // send stderr to the TFT display TFT.background(Black); // set background to black TFT.foreground(White); // set chars to white TFT.cls(); // clear the screen TFT.set_font((unsigned char*) Arial12x12); // select the font TFT.set_orientation(0); TFT.locate(0,0); printf(" Hello Mbed 0"); TFT.set_font((unsigned char*) Arial24x23); // select font 2 TFT.locate(48,115); TFT.printf("Bigger Font"); }
Definition at line 102 of file SPI_TFT.h.
Constructor & Destructor Documentation
| SPI_TFT | ( | PinName | mosi, |
| PinName | miso, | ||
| PinName | sclk, | ||
| PinName | cs, | ||
| PinName | reset, | ||
| const char * | name = "TFT" |
||
| ) |
Create a SPI_TFT object connected to SPI and two pins.
- Parameters:
-
mosi,miso,sclk SPI cs pin connected to CS of display reset pin connected to RESET of display
Definition at line 46 of file SPI_TFT.cpp.
Member Function Documentation
| int _putc | ( | int | value ) | [virtual] |
put a char on the screen
- Parameters:
-
value char to print
- Returns:
- printed char
Definition at line 915 of file SPI_TFT.cpp.
| void Bitmap | ( | unsigned int | x, |
| unsigned int | y, | ||
| unsigned int | w, | ||
| unsigned int | h, | ||
| unsigned char * | bitmap | ||
| ) |
paint a bitmap on the TFT
- Parameters:
-
x,y : upper left corner w width of bitmap h high of bitmap *bitmap pointer to the bitmap data
bitmap format: 16 bit R5 G6 B5
use Gimp to create / load , save as BMP, option 16 bit R5 G6 B5 use winhex to load this file and mark data stating at offset 0x46 to end use edit -> copy block -> C Source to export C array paste this array into your program
define the array as static const unsigned char to put it into flash memory cast the pointer to (unsigned char *) : tft.Bitmap(10,40,309,50,(unsigned char *)scala);
Definition at line 1100 of file SPI_TFT.cpp.
| int BMP_16 | ( | unsigned int | x, |
| unsigned int | y, | ||
| const char * | Name_BMP | ||
| ) |
paint a 16 bit BMP from local filesytem on the TFT (slow)
- Parameters:
-
x,y : upper left corner *Name_BMP name of the BMP file
- Returns:
- 1 if bmp file was found and painted
- -1 if bmp file was found not found
- -2 if bmp file is not 16bit
- -3 if bmp file is to big for screen
- -4 if buffer malloc go wrong
bitmap format: 16 bit R5 G6 B5
use Gimp to create / load , save as BMP, option 16 bit R5 G6 B5 copy to internal file system
Definition at line 1208 of file SPI_TFT.cpp.
| void character | ( | int | x, |
| int | y, | ||
| int | c | ||
| ) | [virtual] |
draw a character on given position out of the active font to the TFT
- Parameters:
-
x x-position of char (top left) y y-position c char to print
Definition at line 930 of file SPI_TFT.cpp.
| void circle | ( | int | x, |
| int | y, | ||
| int | r, | ||
| int | colour | ||
| ) |
draw a circle
- Parameters:
-
x0,y0 center r radius color 16 bit color *
Definition at line 454 of file SPI_TFT.cpp.
| bool claim | ( | FILE * | stream ) | [virtual, inherited] |
redirect output from a stream (stoud, sterr) to display
- Parameters:
-
stream stream that shall be redirected to the TextDisplay
Definition at line 65 of file TextDisplay.cpp.
| void cls | ( | void | ) | [virtual] |
Fill the screen with _backgroun color.
Definition at line 360 of file SPI_TFT.cpp.
| int columns | ( | void | ) | [virtual] |
calculate the max number of char in a line
- Returns:
- max columns depends on actual font size
Definition at line 903 of file SPI_TFT.cpp.
| void fillcircle | ( | int | x, |
| int | y, | ||
| int | r, | ||
| int | colour | ||
| ) |
draw a filled circle
- Parameters:
-
x0,y0 center r radius color 16 bit color *
use circle with different radius, can miss some pixel
Definition at line 562 of file SPI_TFT.cpp.
| void fillrect | ( | int | x0, |
| int | y0, | ||
| int | x1, | ||
| int | y1, | ||
| int | colour | ||
| ) |
draw a filled rect
- Parameters:
-
x0,y0 top left corner x1,y1 down right corner color 16 bit color
Definition at line 806 of file SPI_TFT.cpp.
| int height | ( | ) | [virtual] |
Get the height of the screen in pixel.
- Returns:
- height of screen in pixel
Definition at line 69 of file SPI_TFT.cpp.
| void hline | ( | int | x0, |
| int | x1, | ||
| int | y, | ||
| int | colour | ||
| ) | [protected] |
draw a horizontal line
- Parameters:
-
x0 horizontal start x1 horizontal stop y vertical position color 16 bit color
Definition at line 571 of file SPI_TFT.cpp.
| void line | ( | int | x0, |
| int | y0, | ||
| int | x1, | ||
| int | y1, | ||
| int | colour | ||
| ) |
draw a 1 pixel line
- Parameters:
-
x0,y0 start point x1,y1 stop point color 16 bit color
Definition at line 714 of file SPI_TFT.cpp.
| void locate | ( | int | x, |
| int | y | ||
| ) | [virtual] |
setup cursor position
- Parameters:
-
x x-position (top left) y y-position
Definition at line 895 of file SPI_TFT.cpp.
| void pixel | ( | int | x, |
| int | y, | ||
| int | colour | ||
| ) | [virtual] |
Draw a pixel at x,y with color.
- Parameters:
-
x horizontal position y vertical position color 16 bit pixel color
Definition at line 297 of file SPI_TFT.cpp.
| unsigned short rd_dat | ( | void | ) | [protected] |
Read data from the LCD controller.
- Returns:
- data from LCD controller
Definition at line 165 of file SPI_TFT.cpp.
| unsigned short rd_reg | ( | unsigned char | reg ) | [protected] |
Read a LCD register.
- Parameters:
-
reg register to be read
- Returns:
- value of the register
Definition at line 182 of file SPI_TFT.cpp.
| void rect | ( | int | x0, |
| int | y0, | ||
| int | x1, | ||
| int | y1, | ||
| int | colour | ||
| ) |
draw a rect
- Parameters:
-
x0,y0 top left corner x1,y1 down right corner color 16 bit color *
Definition at line 786 of file SPI_TFT.cpp.
| int rows | ( | void | ) | [virtual] |
calculate the max number of columns
- Returns:
- max column depends on actual font size
Definition at line 909 of file SPI_TFT.cpp.
| void set_font | ( | unsigned char * | f ) |
select the font to use
- Parameters:
-
f pointer to font array
font array can created with GLCD Font Creator from http://www.mikroe.com you have to add 4 parameter at the beginning of the font array to use:
- the number of byte / char
- the vertial size in pixel
- the horizontal size in pixel
- the number of byte per vertical line you also have to change the array to char[]
Definition at line 1094 of file SPI_TFT.cpp.
| void set_orientation | ( | unsigned int | o ) |
Set the orientation of the screen x,y: 0,0 is always top left.
- Parameters:
-
o direction to use the screen (0-3) 90� Steps
Definition at line 76 of file SPI_TFT.cpp.
| void tft_reset | ( | ) | [protected] |
Init the HX8347D controller.
Definition at line 189 of file SPI_TFT.cpp.
| void vline | ( | int | y0, |
| int | y1, | ||
| int | x, | ||
| int | colour | ||
| ) | [protected] |
draw a vertical line
- Parameters:
-
x horizontal position y0 vertical start y1 vertical stop color 16 bit color
Definition at line 642 of file SPI_TFT.cpp.
| int width | ( | ) | [virtual] |
Get the width of the screen in pixel.
- Parameters:
-
@returns width of screen in pixel
Definition at line 62 of file SPI_TFT.cpp.
| void window | ( | unsigned int | x, |
| unsigned int | y, | ||
| unsigned int | w, | ||
| unsigned int | h | ||
| ) | [protected, virtual] |
Set draw window region.
- Parameters:
-
x horizontal position y vertical position w window width in pixel h window height in pixels
Definition at line 340 of file SPI_TFT.cpp.
| void WindowMax | ( | void | ) | [protected] |
Set draw window region to whole screen.
Definition at line 353 of file SPI_TFT.cpp.
| void wr_cmd | ( | unsigned char | value ) | [protected] |
Write a command the LCD controller.
- Parameters:
-
cmd,: command to be written
Definition at line 99 of file SPI_TFT.cpp.
| void wr_dat | ( | unsigned char | value ) | [protected] |
Write data to the LCD controller.
- Parameters:
-
dat data written to LCD controller
Definition at line 130 of file SPI_TFT.cpp.
| void wr_dat_only | ( | unsigned short | dat ) | [protected] |
Start data sequence to the LCD controller.
Stop of data writing to the LCD controller write data to the LCD controller
- Parameters:
-
data to be written *
| void wr_reg | ( | unsigned char | reg, |
| unsigned char | val | ||
| ) | [protected] |
Write a value to the to a LCD register.
- Parameters:
-
reg register to be written val data to be written
Definition at line 175 of file SPI_TFT.cpp.
