Landtiger (LPC1768) graphics LCD demo.

Dependencies:   mbed

Revision:
3:2dccfa0121de
Parent:
2:43ede88fb5a3
Child:
4:cdeea87f25d8
--- a/GLCD.h	Tue Nov 06 21:39:33 2012 +0000
+++ b/GLCD.h	Fri Oct 30 01:26:40 2015 +0000
@@ -13,7 +13,7 @@
 
 /*------------------------------------------------------------------------------
   Color coding
-  GLCD is coded:   15..11 red, 10..5 green, 4..0 blue  (unsigned short)  GLCD_R5, GLCD_G6, GLCD_B5   
+  GLCD is coded:   15..11 red, 10..5 green, 4..0 blue  (uint16_t)  GLCD_R5, GLCD_G6, GLCD_B5   
   original coding: 17..12 red, 11..6 green, 5..0 blue                    ORG_R6,  ORG_G6,  ORG_B6
 
   ORG_R1..5 = GLCD_R0..4,  ORG_R0 = GLCD_R4
@@ -59,53 +59,43 @@
 #define ST7781_ID       0x7783
 
 
-#if(0)
-/* GLCD Exported functions   */   
-extern void GLCD_Init           (void);
-extern unsigned short GLCD_DriverCode ();
-extern void GLCD_WindowMax      (void);
-extern void GLCD_PutPixel       (unsigned int x, unsigned int y);
-extern void GLCD_SetTextColor   (unsigned short color);
-extern void GLCD_SetBackColor   (unsigned short color);
-extern void GLCD_clearScreen    (unsigned short color);
-extern void GLCD_DrawChar       (unsigned int x, unsigned int y, unsigned short *c);
-extern void GLCD_DisplayChar    (unsigned int ln, unsigned int col, unsigned char  c);
-extern void GLCD_DisplayString  (unsigned int ln, unsigned int col, unsigned char *s);
-extern void GLCD_ClearLn        (unsigned int ln);
-extern void GLCD_Bargraph       (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned int val);
-extern void GLCD_Bitmap         (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *bitmap);
-extern void GLCD_Bmp            (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *bmp);
+class GLCD : public Stream {
+//class GLCD {
+  public:
+    GLCD(void);
+    void init           (void);
+      
+    // Stream implementation - provides printf() interface
+    // You would otherwise be forced to use writeChar()
+    virtual int _putc(int value) { writeChar(value); return 1;};
+    virtual int _getc() { return -1; };    
+       
+    void setWindowMax   (void);
+    void setWindow      (int x1, int y1, int x2, int y2);    
+    void drawPixel      (unsigned int x, unsigned int y);
+    void drawPixel      (unsigned int x, unsigned int y, uint16_t color); 
+    void drawPixel      (unsigned int x, unsigned int y, uint8_t r, uint8_t g, uint8_t b); 
+    
+    void setColor       (uint16_t color);
+    void setColor       (uint8_t r, uint8_t g, uint8_t b);     
+    void setBackColor   (uint16_t color);
+    void setBackColor   (uint8_t r, uint8_t g, uint8_t b);     
 
-extern void GLCD_drawHLine      (int x, int y, int l);
-extern void GLCD_drawVLine      (int x, int y, int l);
-extern void GLCD_drawRect       (int x1, int y1, int x2, int y2);
-#endif
+    void clearScreen    (uint16_t color);
 
 
-class GLCD {
-  public:
-    GLCD(void);
-    void Init           (void);
-    void WindowMax      (void);
-    void Window         (int x1, int y1, int x2, int y2);    
-    void drawPixel      (unsigned int x, unsigned int y);
-    void drawPixel      (unsigned int x, unsigned int y, unsigned short color); 
-    void drawPixel      (unsigned int x, unsigned int y, uint8_t r, uint8_t g, uint8_t b); 
-    
-    void setColor       (unsigned short color);
-    void setColor       (uint8_t r, uint8_t g, uint8_t b);     
-    void setBackColor   (unsigned short color);
-    void setBackColor   (uint8_t r, uint8_t g, uint8_t b);     
-
-    void clearScreen    (unsigned short color);
-
-    void DrawChar       (unsigned int x, unsigned int y, unsigned short *c);
-    void DisplayChar    (unsigned int ln, unsigned int col, unsigned char  c);
-    void DisplayString  (unsigned int ln, unsigned int col, unsigned char *s);
-    void ClearLn        (unsigned int ln);
+/** @brief Write single character to the display using the 8x8 fontable
+ *  @brief Start at current cursor location
+ *  @param char chr character to write
+*/     
+    void writeChar      (uint8_t chr);
+    void DrawChar       (unsigned int x, unsigned int y, uint16_t *c);
+    void DisplayChar    (uint16_t ln, uint16_t col, uint8_t  c);
+    void DisplayString  (uint16_t ln, uint16_t col, uint8_t *s);
+    void ClearLn        (uint16_t ln);
     void Bargraph       (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned int val);
-    void Bitmap         (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *bitmap);
-    void Bmp            (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *bmp);
+    void Bitmap         (unsigned int x, unsigned int y, unsigned int w, unsigned int h, uint8_t *bitmap);
+    void Bmp            (unsigned int x, unsigned int y, unsigned int w, unsigned int h, uint8_t *bmp);
 
     void drawHLine      (int x, int y, int l);
     void drawVLine      (int x, int y, int l);
@@ -119,27 +109,28 @@
         
     void lcdOff();
     void lcdOn();
-    void setContrast(char c);
+    void invertDisplay(bool i);    
+    void setContrast(uint8_t c);
     
     int getDisplayXSize();
     int getDisplayYSize();
-    unsigned short getDriverCode ();
-
-    unsigned short _textColor, _backColor;
+    uint16_t getDriverCode ();
 
   private:
-    static __inline unsigned char lcd_send (unsigned short data);
-    static __inline unsigned short lcd_read (void);
-    static __inline void wr_cmd (unsigned char c);
-    static __inline void wr_dat (unsigned short c);
-    static __inline unsigned short rd_dat (void);
-    static __inline void wr_dat_start (void);
-    static __inline void wr_dat_stop (void);
-    static __inline void wr_dat_only (unsigned short c);
-    static __inline void wr_reg (unsigned char reg, unsigned short val);
-    static __inline unsigned short rd_reg (unsigned short reg); 
+    static __inline uint8_t _lcd_send (uint16_t data);
+    static __inline uint16_t _lcd_read (void);
+    static __inline void _wr_cmd (uint16_t c);
+    static __inline void _wr_dat (uint16_t c);
+    static __inline uint16_t _rd_dat (void);
+    static __inline void _wr_dat_start (void);
+    static __inline void _wr_dat_stop (void);
+    static __inline void _wr_dat_only (uint16_t c);
+    static __inline void _wr_reg (uint16_t reg, uint16_t val);
+    static __inline uint16_t _rd_reg (uint16_t reg); 
 
-    unsigned short _driverCode;
+    uint16_t _driverCode;
+    uint16_t _textColor, _backColor;    
+    uint16_t _col, _ln;
 };
 
 #endif /* _GLCD_H */