this is kazushi's branch of AD128160
Fork of AD128160 by
Diff: s_Lcd.cpp
- Revision:
- 0:6fc03008c3fd
diff -r 000000000000 -r 6fc03008c3fd s_Lcd.cpp --- /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); + }