this is kazushi's branch of AD128160

Fork of AD128160 by Gingax x

Revision:
0:6fc03008c3fd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/s_Lcd.cpp	Sun Oct 02 15:02:29 2011 +0000
@@ -0,0 +1,245 @@
+#include "mbed.h"
+
+Serial device(p9, p10);  // tx, rx
+//Serial pc(USBTX, USBRX); // tx, rx
+DigitalOut rst(p20);     //P20  --> LCD  RST  (Reset)
+
+void lcdspeed()
+    {
+    device.putc(0x55);// UART Speed 115200bps
+    device.putc(0x05);
+    device.putc(0x8B);
+    device.putc(0x00);
+    device.putc(0x01);
+    device.putc(0xC2);
+    device.putc(0x00);
+    device.putc(0x4E);
+    device.putc(0xAA);
+    }
+
+void s_Lcdinit()
+    {
+        device.baud(9600);
+        rst = 0;            //Reset
+        wait(0.1);
+        rst = 1;
+    wait(0.1); 
+    device.putc(0x55);//Back light On
+    device.putc(0x03);
+    device.putc(0x89);
+    device.putc(0x01);
+    device.putc(0x2C);
+    device.putc(0xB6);
+    device.putc(0xAA);
+    wait(0.1); 
+    device.putc(0x55);// Clear
+    device.putc(0x02);
+    device.putc(0x80);
+    device.putc(0x55);
+    device.putc(0xD5);
+    device.putc(0xAA);
+    wait(0.1);
+    lcdspeed();
+    wait(0.1);
+    device.baud(115200);
+    }
+
+
+void color(int rgb)
+    {
+    int c1;
+    int c2;
+    int sum;
+    
+    c1=(rgb >> 8) & 0xff;
+    c2=(rgb & 0xff);
+    sum=c1+c2+0x84;
+    device.putc(0x55);
+    device.putc(0x03);
+    device.putc(0x84);
+    device.putc(c1);
+    device.putc(c2);
+    device.putc(sum);
+    device.putc(0xAA);
+    //pc.printf("color %x %x %x ",c1,c2,sum);
+    }
+
+void pixel(int x0,int y0)
+    {
+    unsigned char x0H;
+    unsigned char x0L;
+    unsigned char y0H;
+    unsigned char y0L;
+    unsigned char sum;
+
+    x0H = x0 >> 8;
+    x0L = x0 & 0xFF;
+    y0H = y0 >> 8;
+    y0L = y0 & 0xff;
+
+    sum = x0H+x0L+y0H+y0L+0x01;
+    device.putc(0x55);
+    device.putc(0x05);
+    device.putc(0x01);//command
+    device.putc(x0H);
+    device.putc(x0L);
+    device.putc(y0H);
+    device.putc(y0L);
+    device.putc(sum);
+    device.putc(0xAA);
+    } 
+
+void box(int x0,int y0,int x1,int y1,int paint)
+    {
+    unsigned char x0H;
+    unsigned char x0L;
+    unsigned char x1H;
+    unsigned char x1L;
+    unsigned char y0H;
+    unsigned char y0L;
+    unsigned char y1H;
+    unsigned char y1L;
+    unsigned char sum;
+    unsigned char cmd;
+    switch (paint)
+    {
+    case 1:
+        cmd = 0x04;
+        break;
+    default:
+        cmd =0x03;
+        break;
+    }
+    x0H = x0 >> 8;
+    x0L = x0 & 0xFF;
+    y0H = y0 >> 8;
+    y0L = y0 & 0xff;
+    x1H = x1 >> 8;
+    x1L = x1 & 0xFF;
+    y1H = y1 >> 8;
+    y1L = y1 & 0xff;
+    sum = x0H+x0L+y0H+y0L+x1H+x1L+y1H+y1L+cmd;
+    device.putc(0x55);//Box
+    device.putc(0x09);
+    device.putc(cmd);//command
+    device.putc(x0H);
+    device.putc(x0L);
+    device.putc(y0H);
+    device.putc(y0L);
+    device.putc(x1H);
+    device.putc(x1L);
+    device.putc(y1H);
+    device.putc(y1L);
+    device.putc(sum);
+    device.putc(0xAA);
+    }
+
+void circle(int x0,int y0,int r,int paint)
+    {
+    unsigned char x0H;
+    unsigned char x0L;
+    unsigned char y0H;
+    unsigned char y0L;
+    unsigned char rH;
+    unsigned char rL;
+    unsigned char sum;
+    unsigned char cmd;
+    switch (paint)
+    {
+    case 0:
+        cmd = 0x05;
+        break;
+    case 1:
+        cmd = 0x06;
+        break;
+    default:
+        cmd =0x05;
+        break;
+    }
+    x0H = x0 >> 8;
+    x0L = x0 & 0xFF;
+    y0H = y0 >> 8;
+    y0L = y0 & 0xff;
+    rH = r >> 8;
+    rL = r & 0xFF;
+    sum = x0H+x0L+y0H+y0L+rH+rL+cmd;
+    device.putc(0x55);
+    device.putc(0x07);
+    device.putc(cmd);//command
+    device.putc(x0H);
+    device.putc(x0L);
+    device.putc(y0H);
+    device.putc(y0L);
+    device.putc(rH);
+    device.putc(rL);
+    device.putc(sum);
+    device.putc(0xAA);
+    }
+
+void line(int x0,int y0,int x1,int y1)
+    {
+    unsigned char x0H;
+    unsigned char x0L;
+    unsigned char x1H;
+    unsigned char x1L;
+    unsigned char y0H;
+    unsigned char y0L;
+    unsigned char y1H;
+    unsigned char y1L;
+    unsigned char sum;
+
+    x0H = x0 >> 8;
+    x0L = x0 & 0xFF;
+    y0H = y0 >> 8;
+    y0L = y0 & 0xff;
+    x1H = x1 >> 8;
+    x1L = x1 & 0xFF;
+    y1H = y1 >> 8;
+    y1L = y1 & 0xff;
+    sum = x0H+x0L+y0H+y0L+x1H+x1L+y1H+y1L+02;
+    device.putc(0x55);
+    device.putc(0x09);
+    device.putc(0x02);//command
+    device.putc(x0H);
+    device.putc(x0L);
+    device.putc(y0H);
+    device.putc(y0L);
+    device.putc(x1H);
+    device.putc(x1L);
+    device.putc(y1H);
+    device.putc(y1L);
+    device.putc(sum);
+    device.putc(0xAA);
+    }
+    
+void lcdprint(char data[98],int x,int y)
+    {
+    unsigned char s;
+    unsigned char x0H;
+    unsigned char x0L;
+    unsigned char y0H;
+    unsigned char y0L;
+    unsigned char datalen;
+    x0H = x >> 8;
+    x0L = x & 0xFF;
+    y0H = y >> 8;
+    y0L = y & 0xFF;
+    datalen = strlen(data)+5;
+    device.putc(0x55);
+    device.putc(datalen);
+    device.putc(0x0B);  // command ASCII Print
+    device.putc(x0H);   //x upper 8bit
+    device.putc(x0L);   //x low 8bit
+    device.putc(y0H);   //y upper 8bit
+    device.putc(y0L);   //y low 8bit
+    for(int a=0;a<strlen(data);a++)
+        {
+            device.putc(data[a]);
+            s = s+data[a];
+//            pc.printf("%x:",data[a]);
+        }
+    s = s+x0H+x0L+y0H+y0L+0x0B;
+    device.putc(s);//sumcheck
+    device.putc(0xAA);
+//    pc.printf("print %x %x %x %x %x %d   ",x0H,x0L,y0H,y0L,s,datalen);
+    }