File content as of revision 0:6fc03008c3fd:
#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);
}