Dependencies:   mbed

Revision:
0:9b63dfb366dd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MobileLCD.h	Fri Jul 02 15:36:51 2010 +0000
@@ -0,0 +1,136 @@
+
+#ifndef MBED_MOBILELCD_H
+#define MBED_MOBILELCD_H
+
+#include "mbed.h"
+
+class MobileLCD {
+
+public:
+
+    MobileLCD(PinName mosi, PinName miso, PinName clk, PinName cs, PinName rst);
+
+    void cls();
+    int width();
+    int height();
+    void foreground(int v);
+    void background(int v);
+    void fill(int x, int y, int width, int height, int colour);
+    void reset();
+    void pixel(int x, int y, int colour);
+    void setpixel(int x, int y, int colour);
+    void setline(int x0, int y0, int x1, int y1, int color);
+    void setrect(int x0, int y0, int x1, int y1, unsigned char fill, int color);
+    void setcircle(int x0, int y0, int radius, int color);
+    void putchar(int x, int y, int size, int value, int fColor, int bColor);
+    void bitblit(int x, int y, int width, int height, const char* bitstream, int fColor, int bColor);
+    
+protected:
+
+    SPI _spi;
+    DigitalOut _rst;
+    DigitalOut _cs;
+
+    void _select();
+    void _deselect();
+    void _window(int x, int y, int width, int height);
+    void command(int value);
+    void data(int value);
+
+    int _foreground, _background, _width, _height;
+};
+    
+#define     DISON     0xAF     // Display on
+#define     DISOFF    0xAE     // Display off
+#define     DISNOR    0xA6     // Normal display
+#define     DISINV    0xA7     // Inverse display
+#define     COMSCN    0xBB     // Common scan direction
+#define     DISCTL    0xCA     // Display control
+#define     SLPIN     0x95     // Sleep in
+#define     SLPOUT    0x94     // Sleep out
+#define     PASET     0x75     // Page address set
+#define     CASET     0x15     // Column address set
+#define     DATCTL    0xBC     // Data scan direction, etc.
+#define     RGBSET8   0xCE     // 256-color position set
+#define     RAMWR     0x5C     // Writing to memory
+#define     RAMRD     0x5D     // Reading from memory
+#define     PTLIN     0xA8     // Partial display in
+#define     PTLOUT    0xA9     // Partial display out
+#define     RMWIN     0xE0     // Read and modify write
+#define     RMWOUT    0xEE     // End
+#define     ASCSET    0xAA     // Area scroll set
+#define     SCSTART   0xAB     // Scroll start set
+#define     OSCON     0xD1     // Internal oscillation on
+#define     OSCOFF    0xD2     // Internal oscillation off
+#define     PWRCTR    0x20     // Power control
+#define     VOLCTR    0x81     // Electronic volume control
+#define     VOLUP     0xD6     // Increment electronic control by 1
+#define     VOLDOWN   0xD7     // Decrement electronic control by 1
+#define     TMPGRD    0x82     // Temperature gradient set
+#define     EPCTIN    0xCD     // Control EEPROM
+#define     EPCOUT    0xCC     // Cancel EEPROM control
+#define     EPMWR     0xFC     // Write into EEPROM
+#define     EPMRD     0xFD     // Read from EEPROM
+#define     EPSRRD1   0x7C     // Read register 1
+#define     EPSRRD2   0x7D     // Read register 2
+#define     NOP       0x25     // NOP instruction
+
+// backlight control
+#define     BKLGHT_LCD_ON     1
+#define     BKLGHT_LCD_OFF    2
+
+// Booleans
+#define     NOFILL     0
+#define     FILL       1
+#define     SMALL      0
+#define     MEDIUM     1
+#define     LARGE      2
+
+// mask definitions
+#define     BIT0     0x00000001
+#define     BIT1     0x00000002
+#define     BIT2     0x00000004
+#define     BIT3     0x00000008
+#define     BIT4     0x00000010
+#define     BIT5     0x00000020
+#define     BIT6     0x00000040
+#define     BIT7     0x00000080
+#define     BIT8     0x00000100
+#define     BIT9     0x00000200
+#define     BIT10    0x00000400
+#define     BIT11    0x00000800
+#define     BIT12    0x00001000
+#define     BIT13    0x00002000
+#define     BIT14    0x00004000
+#define     BIT15    0x00008000
+#define     BIT16    0x00010000
+#define     BIT17    0x00020000
+#define     BIT18    0x00040000
+#define     BIT19    0x00080000
+#define     BIT20    0x00100000
+#define     BIT21    0x00200000
+#define     BIT22    0x00400000
+#define     BIT23    0x00800000
+#define     BIT24    0x01000000
+#define     BIT25    0x02000000
+#define     BIT26    0x04000000
+#define     BIT27    0x08000000
+#define     BIT28    0x10000000
+#define     BIT29    0x20000000
+#define     BIT30    0x40000000
+#define     BIT31    0x80000000
+
+// 12-bit color definitions
+#define     WHITE     0xFFFFFF
+#define     BLACK     0x000000
+#define     RED       0xFF0000
+#define     GREEN     0x00FF00
+#define     BLUE      0x0000FF
+#define     CYAN      0x00FFFF
+#define     MAGENTA   0xFF00FF
+#define     YELLOW    0xFFFF00
+#define     BROWN     0xBB2222
+#define     ORANGE    0xFFAA00
+#define     PINK      0xFF66AA
+
+#endif // Lcd_h