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

Revision:
2:0cc880f230ad
Parent:
1:aa3356b16080
Child:
3:5be1edd3a543
--- a/SPI_TFT.h	Wed Jul 13 08:25:10 2011 +0000
+++ b/SPI_TFT.h	Wed Jul 13 08:35:20 2011 +0000
@@ -86,260 +86,259 @@
 class SPI_TFT : public GraphicsDisplay {
 public:
 
-/** Create a SPI_TFT object connected to SPI and two pins
- *
- * @param mosi,miso,sclk SPI
- * @param cs pin connected to CS of display
- * @param reset pin connected to RESET of display
- *
- */ 
-    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
+   *
+   * @param mosi,miso,sclk SPI
+   * @param cs pin connected to CS of display
+   * @param reset pin connected to RESET of display
+   *
+   */ 
+  SPI_TFT(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName reset,const char* name ="TFT");
     
-/** Get the width of the screen in pixel
- *
- * @param 
- * @returns width of screen in pixel
- *
- */    
-    virtual int width();
+  /** Get the width of the screen in pixel
+   *
+   * @param 
+   * @returns width of screen in pixel
+   *
+   */    
+  virtual int width();
 
-/** Get the height of the screen in pixel
- *
- * @param  
- * @returns height of screen in pixel 
- *
- */     
-    virtual int height();
+  /** Get the height of the screen in pixel
+   *
+   * @returns height of screen in pixel 
+   *
+   */     
+  virtual int height();
     
-/** Draw a pixel at x,y with color 
- *  
- * @param x horizontal position
- * @param y vertical position
- * @param color 16 bit pixel color
- **/    
-    virtual void pixel(int x, int y, int colour);
+  /** Draw a pixel at x,y with color 
+   *  
+   * @param x horizontal position
+   * @param y vertical position
+   * @param color 16 bit pixel color
+   */    
+  virtual void pixel(int x, int y, int colour);
     
-/** draw a circle
- *
- * @param x0,y0 center
- * @param r radius
- * @param color 16 bit color                                                                 *
- *
- */    
-    void circle(int x, int y, int r, int colour); 
+  /** draw a circle
+   *
+   * @param x0,y0 center
+   * @param r radius
+   * @param color 16 bit color                                                                 *
+   *
+   */    
+  void circle(int x, int y, int r, int colour); 
     
-/** draw a 1 pixel line
- *
- * @param x0,y0 start point
- * @param x1,y1 stop point
- * @param color 16 bit color
- *
- **/    
-    void line(int x0, int y0, int x1, int y1, int colour);
+  /** draw a 1 pixel line
+   *
+   * @param x0,y0 start point
+   * @param x1,y1 stop point
+   * @param color 16 bit color
+   *
+   */    
+  void line(int x0, int y0, int x1, int y1, int colour);
     
-/** draw a rect
- *
- * @param x0,y0 top left corner
- * @param x1,y1 down right corner
- * @param color 16 bit color
- *                                                   *
- **/    
-    void rect(int x0, int y0, int x1, int y1, int colour);
+  /** draw a rect
+   *
+   * @param x0,y0 top left corner
+   * @param x1,y1 down right corner
+   * @param color 16 bit color
+   *                                                   *
+   */    
+  void rect(int x0, int y0, int x1, int y1, int colour);
     
-/** draw a filled rect
- *
- * @param x0,y0 top left corner
- * @param x1,y1 down right corner
- * @param color 16 bit color
- *
- **/    
-    void fillrect(int x0, int y0, int x1, int y1, int colour);
+  /** draw a filled rect
+   *
+   * @param x0,y0 top left corner
+   * @param x1,y1 down right corner
+   * @param color 16 bit color
+   *
+   */    
+  void fillrect(int x0, int y0, int x1, int y1, int colour);
     
- /** setup cursor position
- *
- * @param column 0 to max
- * @param row 0 to max 
- * max depend on font size
- **/   
-    void locate(int column, int row);
+  /** setup cursor position
+   *
+   * @param column 0 to max
+   * @param row 0 to max 
+   * max depend on font size
+   */   
+  void locate(int column, int row);
     
- /** Fill the screen with _backgroun color
- *
- **/   
-    virtual void cls (void);   
+  /** Fill the screen with _backgroun color
+   *
+   */   
+  virtual void cls (void);   
     
-/** calculate the max number of char in a line
- *
- * @returns max columns
- * depends on actual font size
- *
- */    
-    int columns(void);
+  /** calculate the max number of char in a line
+   *
+   * @returns max columns
+   * depends on actual font size
+   *
+   */    
+  int columns(void);
     
-/** calculate the max number of columns
- *
- * @returns max column
- * depends on actual font size
- *
- */   
-    int rows(void);
+  /** calculate the max number of columns
+   *
+   * @returns max column
+   * depends on actual font size
+   *
+   */   
+  int rows(void);
     
-/** put a char on the screen
- *
- * @param value char to print
- * @returns printed char
- *
- */
-    int _putc(int value);
+  /** put a char on the screen
+   *
+   * @param value char to print
+   * @returns printed char
+   *
+   */
+  int _putc(int value);
     
-/** draw a character on given position out of the active font to the TFT
- *
- * @param col column
- * @param row row
- * @param c char to print
- *
- */    
-    virtual void character(int col, int row, int c);
+  /** draw a character on given position out of the active font to the TFT
+   *
+   * @param col column
+   * @param row row
+   * @param c char to print
+   *
+   */    
+  virtual void character(int col, int row, int c);
     
-/** paint a bitmap on the TFT 
- *
- * @param x,y : upper left corner 
- * @param w width of bitmap
- * @param h high of bitmap
- * @param *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
- * 
- */    
-    void Bitmap(unsigned int x, unsigned int y, unsigned int w, unsigned int h,unsigned char *bitmap);
+  /** paint a bitmap on the TFT 
+   *
+   * @param x,y : upper left corner 
+   * @param w width of bitmap
+   * @param h high of bitmap
+   * @param *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
+   * 
+   */    
+  void Bitmap(unsigned int x, unsigned int y, unsigned int w, unsigned int h,unsigned char *bitmap);
     
- /** select the font to use
- *
- * @param 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[]
- *
- */   
-    void set_font(unsigned char* f);
+  /** select the font to use
+   *
+   * @param 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[]
+   *
+   */   
+  void set_font(unsigned char* f);
    
-/** Set the orientation of the screen
- *  x,y: 0,0 is always top left 
- *
- * @param o direction to use the screen (0-3) 90° Steps  
- *
- */  
-    void set_orientation(unsigned int o);
+  /** Set the orientation of the screen
+   *  x,y: 0,0 is always top left 
+   *
+   * @param o direction to use the screen (0-3) 90° Steps  
+   *
+   */  
+  void set_orientation(unsigned int o);
     
-    SPI _spi;
-    DigitalOut _cs;
-    DigitalOut _reset;
-    unsigned char* font;
-    
+  SPI _spi;
+  DigitalOut _cs;
+  DigitalOut _reset;
+  unsigned char* font;
+   
 protected:
 
-/** draw a horizontal line
- *
- * @param x0 horizontal start
- * @param x1 horizontal stop
- * @param y vertical position
- * @param color 16 bit color                                               
- *
- **/
-    void hline(int x0, int x1, int y, int colour);
+  /** draw a horizontal line
+   *
+   * @param x0 horizontal start
+   * @param x1 horizontal stop
+   * @param y vertical position
+   * @param color 16 bit color                                               
+   *
+   */
+  void hline(int x0, int x1, int y, int colour);
     
- /** draw a vertical line
- *
- * @param x horizontal position
- * @param y0 vertical start 
- * @param y1 vertical stop
- * @param color 16 bit color
- **/
-    void vline(int y0, int y1, int x, int colour);
+  /** draw a vertical line
+   *
+   * @param x horizontal position
+   * @param y0 vertical start 
+   * @param y1 vertical stop
+   * @param color 16 bit color
+   */
+  void vline(int y0, int y1, int x, int colour);
     
-/** Set draw window region
- *
- * @param x horizontal position
- * @param y vertical position
- * @param w window width in pixel
- * @param h window height in pixels
- **/    
-    void window (unsigned int x, unsigned int y, unsigned int w, unsigned int h);
+  /** Set draw window region
+   *
+   * @param x horizontal position
+   * @param y vertical position
+   * @param w window width in pixel
+   * @param h window height in pixels
+   */    
+  void window (unsigned int x, unsigned int y, unsigned int w, unsigned int h);
     
   /** Set draw window region to whole screen
- *
- **/  
-    void WindowMax (void);
+   *
+   */  
+  void WindowMax (void);
     
-/** Init the HX8347D controller 
- *
- */    
-    void tft_reset();
+  /** Init the HX8347D controller 
+   *
+   */    
+  void tft_reset();
     
- /** Write data to the LCD controller
- *
- * @param dat data written to LCD controller
- * 
- */   
-    void wr_dat(int value);
+   /** Write data to the LCD controller
+   *
+   * @param dat data written to LCD controller
+   * 
+   */   
+  void wr_dat(int value);
     
- /** Write a command the LCD controller 
- *
- * @param cmd: command to be written   
- *
- */   
-    void wr_cmd(int value);
+  /** Write a command the LCD controller 
+   *
+   * @param cmd: command to be written   
+   *
+   */   
+  void wr_cmd(int value);
     
- /** Start data sequence to the LCD controller
- * 
- */   
-    void wr_dat_start();
+   /** Start data sequence to the LCD controller
+   * 
+   */   
+  void wr_dat_start();
     
-/** Stop of data writing to the LCD controller
- *   
- */  
-    void wr_dat_stop();
+  /** Stop of data writing to the LCD controller
+   *   
+   */  
+  void wr_dat_stop();
     
-/** write data to the LCD controller
- *
- * @param data to be written 
- *                                           *
- */    
-    void wr_dat_only(unsigned short dat);
+  /** write data to the LCD controller
+   *
+   * @param data to be written 
+   *                                           *
+   */    
+  void wr_dat_only(unsigned short dat);
     
-/** Read data from the LCD controller
- *
- * @returns data from LCD controller
- *  
- */    
-    unsigned short rd_dat(void);
+  /** Read data from the LCD controller
+   *
+   * @returns data from LCD controller
+   *  
+   */    
+  unsigned short rd_dat(void);
     
- /** Write a value to the to a LCD register
- *
- * @param reg register to be written
- * @param val data to be written
- */   
-    void wr_reg (unsigned char reg, unsigned short val);
+  /** Write a value to the to a LCD register
+   *
+   * @param reg register to be written
+   * @param val data to be written
+   */   
+  void wr_reg (unsigned char reg, unsigned short val);
     
-/** Read a LCD register
- *
- * @param reg register to be read
- * @returns value of the register 
- */    
-    unsigned short rd_reg (unsigned char reg);
+  /** Read a LCD register
+   *
+   * @param reg register to be read
+   * @returns value of the register 
+   */    
+  unsigned short rd_reg (unsigned char reg);
     
-    unsigned int orientation;
-    unsigned int char_x;
+  unsigned int orientation;
+  unsigned int char_x;
     
 };