📄 main.c
字号:
if(x<=300) x=0;
if(x>300)
{
x=(x-300)/14.58; //(3800-300)/240=14.58
}
if(x>239) x=239;
return x;
}
unsigned int ConvPosY(unsigned int y)
{
if(y>=3800) y=0;
if(y<3800)
{
y=320-(y-250)/10.78; //(3700-250)/320=10.78
}
if(y<319) y=319;
return y;
/*
if(y<=250) y=0;
if(y>250)
{
y=(y-250)/10.78; //(3700-250)/320=10.78
}
if(y>319) y=319;
return y;
*/
}
void WritePixel(unsigned char x,unsigned int y,unsigned int rgb)
{
//x: x_start & x_end; y:y_start & y_end;
unsigned char i;
BlockWrite(x,x+3,y,y+3);
for(i=0;i<16;i++)
{
WriteChar(rgb);
}
//DispPos(ConvPosX(TP_X),ConvPosY(TP_Y));
}
void DrawLine(unsigned char Xstart,unsigned int Ystart,unsigned char Xend,unsigned int Yend,unsigned int rgb)
{
unsigned int i;
if (Xstart==Xend)
{
BlockWrite(Xstart,Xstart,Ystart,Yend);
for(i=Ystart;i<Yend+1;i++)
{
WriteChar(rgb);
}
}
if (Ystart==Yend)
{
BlockWrite(Xstart,Xend,Ystart,Ystart);
for(i=Xstart;i<Xend+1;i++)
{
WriteChar(rgb);
}
}
}
void DrawGird(unsigned int rgb)
{
unsigned int i;
for(i=15;i<ROW-1;i=i+16)
{
DrawLine(0,i,COL-1,i,rgb);
}
for(i=15;i<COL-1;i=i+16)
{
DrawLine(i,0,i,ROW-1,rgb);
}
}
void StartSPI(void) //SPI开始
{
DCLK=0;
TP_CS=1;
DIN=1;
DCLK=1;
TP_CS=0;
}
void WriteCharToTP(unsigned char dat)
{
unsigned char i;
DCLK=0;
for(i=0;i<8;i++)
{
dat<<=1;
DIN=CY;
DCLK=0; _nop_();_nop_();_nop_();
DCLK=1; _nop_();_nop_();_nop_();
}
}
unsigned int ReadCharFromTP(void)
{
unsigned char i;
unsigned int dat=0;
for(i=0;i<12;i++)
{
dat<<=1;
DCLK=1; _nop_();_nop_();_nop_();
DCLK=0; _nop_();_nop_();_nop_();
if(DOUT) dat++;
}
return dat;
}
void StartTPTest(void) //外部中断0 用来接受键盘发来的数据
{
Delay(30);
StartSPI();
// while(BUSY);
Delay(10);
WriteCharToTP(0x90); //送控制字 10010000 即用差分方式读X坐标
// while(BUSY);
Delay(10);
DCLK=1; _nop_();_nop_();_nop_();_nop_();
DCLK=0; _nop_();_nop_();_nop_();_nop_();
TP_Y=ReadCharFromTP();
WriteCharToTP(0xD0); //送控制字 11010000 即用差分方式读Y坐标
DCLK=1; _nop_();_nop_();_nop_();_nop_();
DCLK=0; _nop_();_nop_();_nop_();_nop_();
TP_X=ReadCharFromTP();
TP_CS=1;
}
void EnterSLP(void)
{
//FOR LGDP4525
WriteComm(0x00);WriteComm(0x07);
WriteData(0x00);WriteData(0x36);
Delay(20);
WriteComm(0x00);WriteComm(0x07);
WriteData(0x00);WriteData(0x26);
Delay(20);
WriteComm(0x00);WriteComm(0x07);
WriteData(0x00);WriteData(0x00);
Delay(20);
WriteComm(0x00);WriteComm(0x10);
WriteData(0x00);WriteData(0x04);
WriteComm(0x00);WriteComm(0x12);
WriteData(0x00);WriteData(0x00);
WriteComm(0x00);WriteComm(0x13);
WriteData(0x00);WriteData(0x00);
Delay(10);
WriteComm(0x00);WriteComm(0x10); //SLP MODE
WriteData(0x00);WriteData(0x06);
//WriteComm(0x00);WriteComm(0x10);//STD MODE
//WriteData(0x00);WriteData(0x0c);
}
void ExitSLP(void)
{
//FOR LGDP4525
WriteComm(0x00);WriteComm(0x10);
WriteData(0x00);WriteData(0x04);
WriteComm(0x00);WriteComm(0x10);
WriteData(0x00);WriteData(0x00);
Delay(15);
WriteComm(0x00);WriteComm(0x12);
WriteData(0x0000);
WriteComm(0x00);WriteComm(0x13);
WriteData(0x00);WriteData(0x00);
WriteComm(0x00);WriteComm(0x14);
WriteData(0x03);WriteData(0x31);
Delay(20);
WriteComm(0x00);WriteComm(0x11);
WriteData(0x01);WriteData(0x00);
WriteComm(0x00);WriteComm(0x12);
WriteData(0x000a);
WriteComm(0x00);WriteComm(0x13);
WriteData(0x0c);WriteData(0x54);
WriteComm(0x00);WriteComm(0x10);
WriteData(0x00);WriteData(0x44);
Delay(20);
WriteComm(0x00);WriteComm(0x12);
WriteData(0x00);WriteData(0x1a);
WriteComm(0x00);WriteComm(0x13);
WriteData(0x2d);WriteData(0x55);
WriteComm(0x00);WriteComm(0x10);
WriteData(0x00);WriteData(0x40);
Delay(10);
WriteComm(0x00);WriteComm(0x10);
WriteData(0x44);WriteData(0x40);
Delay(10);
WriteComm(0x00);WriteComm(0x07);
WriteData(0x00);WriteData(0x25);
WriteComm(0x00);WriteComm(0x07);
WriteData(0x00);WriteData(0x27);
Delay(15);
WriteComm(0x00);WriteComm(0x07);
WriteData(0x00);WriteData(0x37);
}
void InitLCD(void)
{
//INIT CODE(MAIN LCD),FOR LGDP4525,LPL2.2
WriteComm(0x00);
WriteComm(0x07);
WriteData(0x00);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x12);
WriteData(0x00);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x13);
WriteData(0x00);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x14);
WriteData(0x03);
WriteData(0x31);
Delay(10);
WriteComm(0x00);
WriteComm(0x11);
WriteData(0x00);
WriteData(0x01);
WriteComm(0x00);
WriteComm(0x12);
WriteData(0x00);
WriteData(0x09);
WriteComm(0x00);
WriteComm(0x13);
WriteData(0x0b);
WriteData(0x44);
WriteComm(0x00);
WriteComm(0x10);
WriteData(0x07);
WriteData(0x44);
WriteComm(0x00);
WriteComm(0x11);
WriteData(0x02);
WriteData(0x01);
Delay(50);
WriteComm(0x00);
WriteComm(0x12);
WriteData(0x00);
WriteData(0x19);
WriteComm(0x00);
WriteComm(0x13);
WriteData(0x2b);
WriteData(0x44);
WriteComm(0x00);
WriteComm(0x10);
WriteData(0x07);
WriteData(0x40);
Delay(50);
WriteComm(0x00);
WriteComm(0x01);
WriteData(0x01);
WriteData(0x1b);
WriteComm(0x00);
WriteComm(0x02);
WriteData(0x07);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x03);
WriteData(0x10);
WriteData(0x30);
WriteComm(0x00);
WriteComm(0x08);
WriteData(0x06);
WriteData(0x04);
WriteComm(0x00);
WriteComm(0x09);
WriteData(0x00);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x0b);
WriteData(0x5d);
WriteData(0x30);
WriteComm(0x00);
WriteComm(0x0f);
WriteData(0x00);
WriteData(0x02);
WriteComm(0x00);
WriteComm(0x21);
WriteData(0x00);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x30);
WriteData(0x04);
WriteData(0x04);
WriteComm(0x00);
WriteComm(0x31);
WriteData(0x05);
WriteData(0x01);
WriteComm(0x00);
WriteComm(0x32);
WriteData(0x02);
WriteData(0x07);
WriteComm(0x00);
WriteComm(0x33);
WriteData(0x05);
WriteData(0x02);
WriteComm(0x00);
WriteComm(0x34);
WriteData(0x00);
WriteData(0x07);
WriteComm(0x00);
WriteComm(0x35);
WriteData(0x06);
WriteData(0x01);
WriteComm(0x00);
WriteComm(0x36);
WriteData(0x07);
WriteData(0x07);
WriteComm(0x00);
WriteComm(0x37);
WriteData(0x03);
WriteData(0x05);
WriteComm(0x00);
WriteComm(0x38);
WriteData(0x04);
WriteData(0x0e);
WriteComm(0x00);
WriteComm(0x39);
WriteData(0x04);
WriteData(0x0e);
WriteComm(0x00);
WriteComm(0x3a);
WriteData(0x01);
WriteData(0x01);
WriteComm(0x00);
WriteComm(0x3b);
WriteData(0x01);
WriteData(0x01);
WriteComm(0x00);
WriteComm(0x3c);
WriteData(0x01);
WriteData(0x01);
WriteComm(0x00);
WriteComm(0x3d);
WriteData(0x01);
WriteData(0x01);
WriteComm(0x00);
WriteComm(0x3e);
WriteData(0x01);
WriteData(0x01);
Delay(50);
WriteComm(0x00);
WriteComm(0x3f);
WriteData(0x01);
WriteData(0x01);
Delay(50);
WriteComm(0x00);
WriteComm(0x42);
WriteData(0xdb);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x44);
WriteData(0xaf);
WriteData(0x00);
WriteComm(0x00);
WriteComm(0x45);
WriteData(0xdb);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -