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
Dependents: TFT_Test1 SourceCodePro31-SB Mandelbrot Mindwave-screen ... more
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 47 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 833 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 1018 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 1126 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 848 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 361 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 821 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 472 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 724 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 70 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 489 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 632 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 813 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 298 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 166 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 183 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 704 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 827 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 1012 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 77 of file SPI_TFT.cpp.
void tft_reset | ( | ) | [protected] |
Init the HX8347D controller.
Definition at line 190 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 560 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 63 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 341 of file SPI_TFT.cpp.
void WindowMax | ( | void | ) | [protected] |
Set draw window region to whole screen.
Definition at line 354 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 100 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 131 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 176 of file SPI_TFT.cpp.
Generated on Tue Jul 12 2022 20:03:43 by 1.7.2