⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 il9325.c

📁 一个测试TP的程序,适合模组厂作为生产测试用!
💻 C
📖 第 1 页 / 共 3 页
字号:
	P1=0xff;
	P2=0xff;
	P3=0xff;
	P0=0xff;
   CS1=0;
     RST=0;
     delay(100);
     RST=1;
     delay(100);
//Initial code_r61505 with 2.4”
// Power setting
init_data(0x0000, 0x0000);
delay(100);
init_data(0x0007, 0x0000); // Set the Vcore voltage and this setting is must.
init_data(0x0012, 0x0000); // Start internal OSC.
delay(100);
//init_data(0x0000, 0x0000);

init_data(0x00a4, 0x0001); // set SS and SM bit
delay(100);
init_data(0x0060, 0x2700); // set 1 line inversion

init_data(0x0008, 0x0808); // set GRAM write direction and BGR=1.

init_data(0x0030, 0x0007);
init_data(0x0031, 0x0206);
init_data(0x0032, 0x0506);
//init_data(0x0033, 0x0202);
//init_data(0x0034, 0x0202);
init_data(0x0035, 0x0704);
init_data(0x0036, 0x1203);
init_data(0x0037, 0x0007);
init_data(0x0038, 0x0000);
init_data(0x0039, 0x0706);
//init_data(0x003a, 0x0202);
//init_data(0x003b, 0x0102);
init_data(0x003C, 0x0701);
init_data(0x003D, 0x000f);//051C

//init_data(0x0007, 0x0001); // Resize register
//init_data(0x0017, 0x0001); // set the back porch and front porch
init_data(0x0010, 0x0000); // set non-display area refresh cycle ISC[3:0]
init_data(0x0011, 0x0007); // FMARK function217
delay(50);
init_data(0x0012, 0x0000); // RGB interface setting
//init_data(0x0013, 0x0000); // Frame marker Position
delay(100);
init_data(0x0010, 0x1490);
init_data(0x0011, 0x0227);
delay(100);
init_data(0x0012, 0x001a);
delay(100);
init_data(0x0013, 0x1100);

init_data(0x0029, 0x000a); // RGB interface polarityA
init_data(0x002b, 0x000d);//013C
delay(100);
//*************Power On sequence ****************//
init_data(0x0001, 0x0100); // SAP, BT[3:0], AP, DSTB, SLP, STB
init_data(0x0002, 0x0700); // DC1[2:0], DC0[2:0], VC[2:0]
init_data(0x0003, 0x1000); // VREG1OUT voltage
init_data(0x0004, 0x1030); // VDV[4:0] for VCOM amplitude
//delay(200); // Dis-charge capacitor power voltage
init_data(0x0009, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
init_data(0x000a, 0x0000); // R11h=0x0001 at VCI=3.3V DC1[2:0], DC0[2:0], VC[2:0]
//delay(50); // Delay 50ms
init_data(0x000c, 0x0000); // R11h=0x0138 at VCI=3.3V VREG1OUT voltage
//delay(50); // Delay 50ms
init_data(0x000D, 0x0000); // R11h=0x1800 at VCI=3.3V VDV[4:0] for VCOM amplitude
//init_data(0x0015, 0x8000); // R11h=0x0008 at VCI=3.3V VCM[4:0] for VCOMH
//delay(50);
init_data(0x0020, 0x0000); // GRAM horizontal Address
init_data(0x0021, 0x0000); // GRAM Vertical Address

//------------------ Set GRAM area ---------------//

init_data(0x0050, 0x0000); // Horizontal GRAM Start Address
init_data(0x0051, 0x00EF); // Horizontal GRAM End Address
init_data(0x0052, 0x0000); // Vertical GRAM Start Address
init_data(0x0053, 0x013F); // Vertical GRAM Start Address

init_data(0x0060, 0xa700); // Gate Scan Line
init_data(0x0061, 0x0001); // NDL,VLE, REV
init_data(0x006A, 0x0000); // set scrolling line

//-------------- Partial Display Control ---------//
init_data(0x0080, 0x0000);
init_data(0x0081, 0x0000);
init_data(0x0082, 0x0000);
init_data(0x0083, 0x0000);
init_data(0x0084, 0x0000);
init_data(0x0085, 0x0000);
//-------------- Panel Control -------------------//
init_data(0x0090, 0x0010);
init_data(0x0092, 0x0600);
init_data(0x0093, 0x0003);
//delay(50);

init_data(0x0095, 0x0110);
init_data(0x0097, 0x0000);
init_data(0x0098, 0x0000);

init_data(0x0007, 0x0021);

delay(100);

init_data(0x0007, 0x0061);

delay(100);

init_data(0x0007, 0x0133); // 262K color and display ON

delay(100);

}

void test_patten(uint patten,col,row)
     {
     uint i,j;
       address_set(0,239,0,320,0,0);
      write_data(0x0022,0);
      for(i=0;i<col;i++)
          for(j=0;j<row;j++)
              write_data(patten,1);
     }

void address_set(uint hsa,uint hea,uint vsa,uint vea,uint ramaddl,uint ramaddh)
     {
     init_data(0x0050,hsa);
     init_data(0x0051,hea);
     init_data(0x0052,vsa);
     init_data(0x0053,vea);
     init_data(0x0020,ramaddl);
     init_data(0x0021,ramaddh);
     }

void gray(uint color)
     {
     uint i,j;
      write_data(0x0022,0);
      for(i=0;i<320;i++)
          for(j=0;j<80;j++)
              write_data(color,1);
     }
/*--------------------TP start-------------------

void TP_int() interrupt 0 //ext INT 0
{
           uint X,Y;
           delay(10);
           EX0=0;
           X=TP_read(2);
           Y=TP_read(1);
           delay(2);
           //put_pixel(X,Y);
           put_pixel(X,Y);
           inta++;
           if(inta>10000)
           {
            write_data(0x0022,0);
            test_patten(0xffff,240,320);
            inta=0;
            }
            EX0=1;
 } */
void put_pixel(uint x,uint y)
{
        if(x>=X_add)x=239;
        if(y>=Y_add)y=319;
        address_set(0,240,0,320,x,y);
        write_data(0x0022,0);
        write_data(COLOR,1);
        write_data(COLOR,1);
        address_set(0,240,0,320,x,y+1);
        write_data(0x0022,0);
        write_data(COLOR,1);
        write_data(COLOR,1);
}
uint TP_read(uchar a)
{
        uchar k,temp;
        uint k_temp;
#define TP_MODE 0x80// Disable PenIRQ interrupt
TP_CLK=0;
TP_DIN=0;
TP_CS=0;
TP_DOUT=1;
if(a==1)
temp=TP_MODE|0x10;//read y
if(a==2)
temp=TP_MODE|0x50;//read x
if(a==3)
temp=TP_MODE|0x20;//read Y1
if(a==4)
temp=TP_MODE|0x60;//read Y1

//TP_write(temp);
for(k=0;k<8;k++)
{
if((temp&0x80)==0)
TP_DIN=0;
else
TP_DIN=1;
TP_CLK=1;
temp=temp<<1;
TP_CLK=0;
}
TP_DIN=0;
TP_CLK=1;
TP_CLK=0;

//TP_BUSY=1;
//while(TP_BUSY);//wait for TP not busy.

k_temp=0;
for(k=11;k!=255;k--)
{
TP_CLK=0;
if(TP_DOUT!=0)
k_temp=k_temp|(1<<k);
TP_CLK=1;
}
TP_CS=1;
if(k_temp>400)
{
	if(a==1)
		k_temp=(k_temp-300)/11; //y
	else
		k_temp=(k_temp-400)/14; //x
}
else
	k_temp=0;
return k_temp;
}
uchar code bmp[]={
/*
Image size:120 X 16 X 16BPP=3840 bytes.
4 bytes=P(x,y)+P(x+1,y)
Data format: 4 bytes(2 pixels)=RRRRRGGG,GGGBBBBB,RRRRRGGG,GGGBBBBB
*/
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -