?? lcd.c
字號(hào):
Uart_Printf("[CSTN 4K COLOR(12bit/1pixel) LCD TEST]\n");
Uart_Printf(" Select 12 bpp data format 1. Packed[D] 2. Unpacked\n");
if (Uart_Getch() == '2')
cMode = MODE_CSTN_12BIT_UP;
else cMode = MODE_CSTN_12BIT;
Lcd_Port_Init();
Lcd_Init(cMode);
Glib_Init(cMode);
Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
Glib_ClearScr(0, cMode);
k=0;
for(j=0;j<240;j+=80)
for(i=0;i<320;i+=20)
{
if((k<16)|(k>31))
{
Glib_FilledRectangle(i,j,i+19,j+79,((k%16)<<(4*(k/16))));
k++;
}
else
{
Glib_FilledRectangle(i,j,i+19,j+79,((k-(1+2*(k%16)))<<(4*(k/16))));
k++;
}
}
Uart_Printf("CSTN 4K color mode test 1. Press any key!\n");
Uart_Getch();
#if 1 // just test
i = 0;
while(1)
{
if (Uart_Getch() == '\r') break;
Lcd_CstnOnOff(0); // Enable ENVID Bit and GPB5 output
Delay(1);
Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
}
Lcd_Port_Return();
#else
Glib_ClearScr(0, cMode);
for(j=0;j<240;j++)
for(i=0;i<320;i++)
PutPixel(i,j,((i/40)<<9)+((j/30)<<5)+(((j/15)%2)<<1)+((i/20)%2));
Uart_Printf("CSTN 4K color mode test 2. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, cMode);
k=0;
for(i=160;i<480;i+=20)
for(j=120;j<360;j+=15)
{
Glib_FilledRectangle(i,j,i+19,j+14,(((k&0xf)<<8)|((k%4)<<4)|(k&0xf0)) );
k++;
}
// #0
// 00
Glib_Rectangle(0,0,319,239,0xf00);
Glib_Line(0,0,319,239,0x0f0);
Glib_Line(0,239,319,0,0x00f);
// 0#
// 00
Glib_Rectangle(0+320,0,319+320,239,0xfff);
Glib_Line(0+320,0,319+320,239,0xfff);
Glib_Line(0+320,239,319+320,0,0xfff);
// 00
// #0
Glib_Rectangle(0,0+240,319,239+240,0xfff);
Glib_Line(0,0+240,319,239+240,0xfff);
Glib_Line(0,239+240,319,0+240,0xfff);
// 00
// 0#
Glib_Rectangle(0+320,0+240,319+320,239+240,0xfff);
Glib_Line(0+320,0+240,319+320,239+240,0xfff);
Glib_Line(0+320,239+240,319+320,0+240,0xfff);
Glib_Rectangle(50+320,50+240,269+320,189+240,0xfff);
Uart_Printf("Virtual Screen Test(CSTN 4K color). Press any key[ijkm\\r]!\n");
MoveViewPort(cMode);
Lcd_MoveViewPort(0,0,cMode);
Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output
Lcd_Port_Return();
#endif
}
void Test_Lcd_Cstn_16Bit(void)
{
int i,j,k,c;
Lcd_Port_Init();
Lcd_Init(MODE_CSTN_16BIT);
Glib_Init(MODE_CSTN_16BIT);
Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
Uart_Printf("[CSTN 4K COLOR 16BPP mode LCD TEST]\n");
Glib_ClearScr(0, MODE_CSTN_16BIT);
k=0;
for(j=0;j<240;j+=80)
for(i=0;i<320;i+=20)
{
if(j==0)
{
c = (k%16)<<1; //blue
}
else if (j==80)
{
c = (15-k%16)<<7; //green
}
else
{
c = (k%16)<<12; //red
}
Glib_FilledRectangle(i,j,i+19,j+79,c);
k++;
}
Uart_Printf("CSTN 4K color mode test 1. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_CSTN_16BIT);
for(j=0;j<240;j++)
for(i=0;i<320;i++)
PutPixel(i,j,((i/40)<<13)+((j/30)<<8)+(((j/15)%2)<<2)+((i/20)%2));
Uart_Printf("CSTN 4K color mode test 2. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_CSTN_16BIT);
k=0;
for(i=160;i<480;i+=20)
for(j=120;j<360;j+=15)
{
Glib_FilledRectangle(i,j,i+19,j+14,(((k&0xf)<<12)|((k%4)<<7)|(k&0x8)) );
k++;
}
// #0
// 00
Glib_Rectangle(0,0,319,239,0xf00);
Glib_Line(0,0,319,239,0x0f0);
Glib_Line(0,239,319,0,0x00f);
// 0#
// 00
Glib_Rectangle(0+320,0,319+320,239,0xfff);
Glib_Line(0+320,0,319+320,239,0xfff);
Glib_Line(0+320,239,319+320,0,0xfff);
// 00
// #0
Glib_Rectangle(0,0+240,319,239+240,0xfff);
Glib_Line(0,0+240,319,239+240,0xfff);
Glib_Line(0,239+240,319,0+240,0xfff);
// 00
// 0#
Glib_Rectangle(0+320,0+240,319+320,239+240,0xfff);
Glib_Line(0+320,0+240,319+320,239+240,0xfff);
Glib_Line(0+320,239+240,319+320,0+240,0xfff);
Glib_Rectangle(50+320,50+240,269+320,189+240,0xfff);
Uart_Printf("Virtual Screen Test(CSTN 4K color). Press any key[ijkm\\r]!\n");
MoveViewPort(MODE_CSTN_16BIT);
Lcd_MoveViewPort(0,0,MODE_CSTN_16BIT);
Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output
Lcd_Port_Return();
}
void Select_Tcon()
{
U8 ch=0;
// Uart_Printf("Select LCD controller type [1-LPC3600 2-LCC3600 3-General TFT] : ");
// ch = Uart_GetIntNum();
ch = 3;
switch (ch)
{
case 1 :
Lcd_Lpc3600Enable(); // Enable LPC3600
break;
case 2 :
Lcd_Lcc3600Enable();
break;
case 3 :
Lcd_TconDisable();
break;
default :
Lcd_Lcc3600Enable(); // Enable LCC3600
break;
}
}
void Test_Lcd_Tft_8Bit_240320(void)
{
int i,j,k;
Lcd_Port_Init();
Lcd_Palette8Bit_Init(); // Initialize 256 palette
Lcd_Init(MODE_TFT_8BIT_240320);
Glib_Init(MODE_TFT_8BIT_240320);
Uart_Printf("[TFT 256 COLOR(8bit/1pixel) LCD TEST]\n");
Select_Tcon();
Lcd_PowerEnable(0, 1);
rTPAL = (1<<24)|((0xff)<<16); // Enable Temporary Palette : Red
Lcd_EnvidOnOff(1); // Enable ENVID Bit
Uart_Printf("\nTFT 256 color mode test 1. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_8BIT_240320); // Fill the LCD panel with Black Color
k=0;
for(i=0;i<320;i+=20)
for(j=0;j<240;j+=15)
{
Glib_FilledRectangle(j,i,j+14,i+19,(k%256));
k++;
}
rTPAL = 0; // Disable Temporary Palette
Uart_Printf("TFT 256 color mode test 2. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_8BIT_240320); // Fill the LCD panel with Black Color
k=0;
for(i=0;i<320;i+=10)
for(j=0;j<240;j+=10)
{
Glib_FilledRectangle(j,i,j+9,i+9,(k%256));
k+=30;
}
Uart_Printf("TFT 256 color mode test 3. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_8BIT_240320);
k=0;
for(i=80;i<240;i+=10)
{
for(j=60;j<180;j+=10)
{
Glib_FilledRectangle(j,i,j+9,i+9,k);
k++;
}
}
Glib_Rectangle(0,0,239,319,255);
Glib_Line(0,0,239,319,255);
Glib_Line(0,319,239,0,255);
Glib_Rectangle(0+240,0,239+240,319,255);
Glib_Line(0+240,0,239+240,319,255);
Glib_Line(0+240,319,239+240,0,255);
Glib_Rectangle(0,0+320,239,319+320,255);
Glib_Line(0,0+320,239,319+320,255);
Glib_Line(0,319+320,239,0+320,255);
Glib_Rectangle(0+240,0+320,239+240,319+320,255);
Glib_Line(0+240,0+320,239+240,319+320,255);
Glib_Line(0+240,319+320,239+240,0+320,255);
Glib_Rectangle(10+240,10+320,480-11,640-11,255);
Uart_Printf("Virtual Screen Test(TFT 256 color)\n");
Uart_Printf("Press any key[ijkm\\r] or Press enter to exit\n");
MoveViewPort(MODE_TFT_8BIT_240320);
Lcd_MoveViewPort(0,0,MODE_TFT_8BIT_240320);
Glib_ClearScr(0, MODE_TFT_8BIT_240320);
Lcd_EnvidOnOff(0);
Lcd_PowerEnable(0, 0);
Lcd_Port_Return();
Uart_Printf("\n\n\n");
}
void Test_Lcd_Tft_16Bit_240320(void)
{
int i,j,k;
Lcd_Port_Init();
Lcd_Init(MODE_TFT_16BIT_240320);
Glib_Init(MODE_TFT_16BIT_240320);
Uart_Printf("[TFT 64K COLOR(16bit/1pixel) LCD TEST]\n");
Select_Tcon();
Lcd_PowerEnable(0, 1);
Lcd_EnvidOnOff(1);
Glib_ClearScr(0, MODE_TFT_16BIT_240320);
Glib_FilledRectangle(0,0,239,159,0xf800);
Glib_FilledRectangle(0,160,239,320,0xf800);
Uart_Printf("\nTFT 64K color mode test 1. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_16BIT_240320);
Glib_Rectangle(0,0,239,319,0x07e0);
Glib_FilledRectangle(0,0,20,20,65535);
Glib_Rectangle(220,300,239,319,65535);
Glib_Line(0,0,239,319,0x1f);
Glib_Line(239,0,0,319,0xf800);
Uart_Printf("TFT 64K color mode test 2. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_16BIT_240320);
k=0;
for(i=80;i<240;i+=10)
{
for(j=60;j<180;j+=10)
{
Glib_FilledRectangle(j,i,j+9,i+9,k);
k++;
}
}
Glib_Rectangle(0,0,239,319,65535);
Glib_Line(0,0,239,319,65535);
Glib_Line(0,319,239,0,65535);
Glib_Rectangle(0+240,0,239+240,319,255);
Glib_Line(0+240,0,239+240,319,255);
Glib_Line(0+240,319,239+240,0,255);
Glib_Rectangle(0,0+320,239,319+320,255);
Glib_Line(0,0+320,239,319+320,255);
Glib_Line(0,319+320,239,0+320,255);
Glib_Rectangle(0+240,0+320,239+240,319+320,255);
Glib_Line(0+240,0+320,239+240,319+320,255);
Glib_Line(0+240,319+320,239+240,0+320,255);
Glib_Rectangle(40+240,40+320,480-41,640-41,0x1f);
Uart_Printf("Virtual Screen Test(TFT 256 color)\n");
Uart_Printf("Press any key[ijkm\\r] or Press enter to exit\n");
MoveViewPort(MODE_TFT_16BIT_240320);
Lcd_MoveViewPort(0,0,MODE_TFT_16BIT_240320);
Glib_ClearScr(0, MODE_TFT_16BIT_240320);
Lcd_EnvidOnOff(0);
Lcd_PowerEnable(0, 0);
Lcd_Port_Return();
Uart_Printf("\n\n\n");
}
void Test_Lcd_Tft_8Bit_240320_On(void)
{
int i,j,k=0;
Lcd_Port_Init();
Lcd_Palette8Bit_Init();
Lcd_Init(MODE_TFT_8BIT_240320);
Glib_Init(MODE_TFT_8BIT_240320);
Select_Tcon();
Lcd_PowerEnable(0, 1);
Uart_Printf("\n[TFT LCD(240x320 ,8bpp) WILL BE TURNED ON EVEN DURING OTHER TEST]\n");
Uart_Printf("If you'd like to off the TFT LCD, then excute other LCD test program,\n\n\n");
for(j=0;j<320;j++)
for(i=0;i<240;i++)
PutPixel(i,j,((int)DEMO256[k++]));
Lcd_EnvidOnOff(1);
}
void Test_Lcd_Tft_8Bit_240320_Bmp(void)
{
int i,j,k=0;
Lcd_Port_Init();
Lcd_Palette8Bit_Init();
Lcd_Init(MODE_TFT_8BIT_240320);
Glib_Init(MODE_TFT_8BIT_240320);
Select_Tcon();
Lcd_PowerEnable(0, 1); // Enable LCD_PWREN
for(j=0;j<320;j++)
for(i=0;i<240;i++)
PutPixel(i,j,((int)DEMO256[k++]));
Lcd_EnvidOnOff(1); // Enable ENVID
Uart_Printf("Test palette & RGB format(5:6:5 ->5:5:5:1)..........\n");
Uart_Printf("then press any key\n");
Uart_Getch();
Lcd_EnvidOnOff(0);
rLCDCON5&=~(1<<11); // 5:5:5:1 Palette Setting & put pixel with 5551 format
Lcd_Palette8Bit_Init(); // palette change to 5:5:5:1 format..
Uart_Printf("One more ,please...\n");
Uart_Getch();
Lcd_EnvidOnOff(1);
Uart_Printf("Press any key to quit!\n\n\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_8BIT_240320);
Delay(5000);
Lcd_EnvidOnOff(0);
rLCDCON5|=(1<<11); // 5:6:5 Palette Setting
Lcd_Port_Return();
}
void Test_Lcd_Tft_8Bit_240320_IntFr(void)
{
int i,j,k=0;
Lcd_Port_Init();
Lcd_Palette8Bit_Init();
Lcd_Init(MODE_TFT_8BIT_240320);
Glib_Init(MODE_TFT_8BIT_240320);
Select_Tcon();
Lcd_PowerEnable(0, 1);
rLCDCON5|=(1<<11); // 5:6:5 Palette Setting
for(j=0;j<320;j++)
for(i=0;i<240;i++)
PutPixel(i,j,((int)DEMO256[k++]));
//--------LCD frame interrupt test---------------------------------------------------START
//The content of GPG4 is changed to OUTPUT('01').
//We will check the frame interrupt with using Logic Analyzer.
rGPGUP=rGPGUP&(~(1<<4))|(1<<4); // Pull-up disable
rGPGDAT=rGPGDAT&(~(1<<4))|(1<<4); // GPG4=High
rGPGCON=rGPGCON&(~(3<<8))|(1<<8); // GPG4=Output
pISR_LCD=(unsigned)Lcd_Int_Frame;
rINTMSK=~(BIT_LCD);
rLCDINTMSK=(1<<2)|(0<<1)|(1); // 8Words Trigger Level,Unmask Frame int,mask Fifo int
//--------LCD frame interrupt test-----------------------------------------------------END
Lcd_EnvidOnOff(1); // Enable ENVID
Uart_Printf("Press any key to quit!\n\n\n");
Uart_Getch();
rLCDINTMSK|=3; // Mask LCD SUB Interrupt
rINTMSK|=(BIT_LCD); // Mask LCD INT
Lcd_EnvidOnOff(0);
Lcd_Port_Return();
}
void Test_Lcd_Tft_8Bit_240320_IntFi(void)
{
int i,j,k=0;
Lcd_Port_Init();
Lcd_Palette8Bit_Init();
Lcd_Init(MODE_TFT_8BIT_240320);
Glib_Init(MODE_TFT_8BIT_240320);
Select_Tcon();
Lcd_PowerEnable(0, 1);
rLCDCON5|=(1<<11); // 5:6:5 Palette Setting
for(j=0;j<320;j++)
for(i=0;i<240;i++)
PutPixel(i,j,((int)DEMO256[k++]));
Lcd_EnvidOnOff(1); // Enable ENVID
//--------LCD FIFO interrupt test---------------------------------------------------START
pISR_LCD=(unsigned)Lcd_Int_Fifo;
rINTMSK=~(BIT_LCD);
rLCDINTMSK=(0<<2)|(1<<1)|(0); // 4Words Trigger Level,Mask Frame int,Unmask Fifo int
//--------LCD FIFO interrupt test-----------------------------------------------------END
Uart_Printf("Press any key to quit!\n\n\n");
Uart_Getch();
rLCDINTMSK|=3; // Mask LCD SUB Interrupt
rINTMSK|=(BIT_LCD); // Mask LCD INT
Lcd_EnvidOnOff(0);
Lcd_Port_Return();
}
//LandScape type
void Test_LCD_Tft_LandScape_320240(void){
int i,j,k;
// int i,j,k;
Lcd_Port_Init();
Lcd_Init(MODE_TFT_16BIT_320240);
Glib_Init(MODE_TFT_16BIT_320240);
Uart_Printf("[TFT 64K COLOR(16bit/1pixel) LCD TEST]\n");
Select_Tcon();
Lcd_PowerEnable(0, 1);
Lcd_EnvidOnOff(1);
Glib_ClearScr(0, MODE_TFT_16BIT_320240);
Glib_FilledRectangle(0,0,319,119,0xf800);
Glib_FilledRectangle(0,120,319,240,0xf800);
Uart_Printf("\nTFT 64K color mode test 1. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_16BIT_320240);
Glib_Rectangle(0,0,319,239,0x07e0);
Glib_FilledRectangle(0,0,20,20,65535);
Glib_Rectangle(300,220,319,239,65535);
Glib_Line(0,0,319,239,0x1f);
Glib_Line(319,0,0,239,0xf800);
Uart_Printf("TFT 64K color mode test 2. Press any key!\n");
Uart_Getch();
Glib_ClearScr(0, MODE_TFT_16BIT_320240);
k=0;
for(i=80;i<320;i+=10)
{
for(j=60;j<260;j+=10)
{
Glib_FilledRectangle(j,i,j+9,i+9,k);
k++;
}
}
Glib_Rectangle(0,0,319,239,65535);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -