📄 lcd.c
字号:
LcdOsdSetAlpha(alpha);
LcdOsdSelectFunction(whichfunction);
}
printf("Press any key to continue\n");
getchar();
LcdEnvidOnOff(0);
LcdOsdEnDiable(0);
}
void Test_Osd_16Bit565_240320_Compkey_Direction(void)
{
unsigned int toggle;
int alpha;
unsigned int i,j,k;
unsigned int flag;
int topx, topy, botx, boty;
unsigned int whichfunction;
LcdBGInit(MODE_PAR_16BIT565_240320);
GlibInit(MODE_PAR_16BIT565_240320, BGBUFFER1);
k=0;
k=0;
for(j=0; j<BG_YSIZE_240320; j+=40) {
for(i=0; i<BG_XSIZE_240320; i+=40) {
if(k%2)
GlibFilledRectangle(i, j, i+39, j+39, 0x0);
else
GlibFilledRectangle(i, j, i+39, j+39, 0xf800+k*4);
k++;
}
k++;
}
LcdFGInit(MODE_OSD_16BIT565_240320);
GlibInit(MODE_OSD_16BIT565_240320, FGBUFFER1);
k=0;
for(j=0; j<FG_YSIZE_240320; j+=20) {
for(i=0; i<FG_XSIZE_240320; i+=20) {
if(k%2)
GlibFilledRectangle(i, j, i+19, j+19, 0x0);
else
//GlibFilledRectangle(i, j, i+19, j+19, 0xf800+k*4);
GlibFilledRectangle(i, j, i+19, j+19, 0x1f);
k++;
}
k++;
}
GlibRectangle(0, 0, FG_XSIZE_240320-1, FG_YSIZE_240320-1, 0x1f);
rLCDCON1=(rLCDCON1&~(0x3<<28))|(0x2<<28);
topx=60;
topy=80;
botx=60+FG_XSIZE_240320-1;
boty=80+FG_YSIZE_240320-1;
LcdOsdChangeCoordination(topx,topy,botx, boty);
rLCDVSCRF1=(((FG_VXSIZE_240320-(botx-topx+1))*2)<<13)|((botx-topx+1)*2);
rLCDEADDRF1=LCDBASEL(LCDFRAMEBUFFERFG1+(FG_VXSIZE_240320*2)*(boty-topy+1));
LcdOsdSelectFunction(OSD_COLORKEY);
LcdOsdSetAlpha(0xff);
LcdColorKeyInit(MODE_OSD_16BIT565_240320);
LcdSetColorKey(0, 0x3fffff, 0xffffff);
LcdOsdEnDiable(1);
LcdEnvidOnOff(1);;
printf("i:upper, j:left, k:right,m:lower\n");
printf("a:decrement, s:increment\n");
printf("d:osd blending, f:osd colorkey\n");
printf("g:foreground matching, h:background matching\n");
flag=0;
toggle=0;
whichfunction=OSD_COLORKEY;
alpha=0xff;
while(1) {
switch(getchar()) {
case 'i':
topy-=4;
boty-=4;
break;
case 'j':
topx-=4;
botx-=4;
break;
case 'k':
topx+=4;
botx+=4;
break;
case 'm':
topy+=4;
boty+=4;
break;
case 'a':
alpha-=5;
break;
case 's':
alpha+=5;
break;
case 'd':
whichfunction=OSD_BLENDING;
break;
case 'f':
whichfunction=OSD_COLORKEY;
break;
case 'g':
toggle=0;
break;
case 'h':
toggle=1;
break;
case '\r':
return;
default:
break;
}
if(topy<0) {
topy=0;
boty=FG_YSIZE_240320-1;
}
if(topx<0) {
topx=0;
botx=FG_XSIZE_240320-1;
}
if(botx>BG_XSIZE_240320-1) {
botx=BG_XSIZE_240320-1;
topx=BG_XSIZE_240320-FG_XSIZE_240320;
}
if(boty>BG_YSIZE_240320-1) {
boty=BG_YSIZE_240320-1;
topy=BG_YSIZE_240320-FG_YSIZE_240320;
}
if(alpha>255) alpha=255;
if(alpha<0) alpha=0;
printf("%d, %d, %d, %d, @%d\n", topx, topy, botx, boty, alpha);
LcdOsdChangeCoordination(topx,topy,botx, boty);
LcdOsdSetAlpha(alpha);
LcdOsdSelectFunction(whichfunction);
LcdSetColorKey(toggle, 0x3fffff, 0xffffff);
}
printf("Press any key to continue\n");
getchar();
LcdEnvidOnOff(0);
LcdOsdEnDiable(0);
}
/********************** For Serial LCD (240x320) ***********************/
void Test_Lcd_SER_8Bit_240320_On(void)
{
int i,j,k;
printf("8bpp free-run test!\n");
Init_240X320_AMLCD();
PaletteInit(PAL_565_8BPPBG); // Initialize 256 palette
LcdBGInit(MODE_SER_8BIT_240320);
GlibInit(MODE_SER_8BIT_240320, BGBUFFER1);
GlibClearScr(0);
rLCDCON1=(rLCDCON1&~(3<<28))|(2<<28);
k=0;
for(j=0; j<BG_YSIZE_240320; j++)
for(i=0; i<BG_XSIZE_240320; i++)
PutPixel(i,j,DEMO256[k++]);
LcdEnvidOnOff(1); // Enable ENVID Bit
printf("If you want to stop, press any key\n");
getchar();
LcdEnvidOnOff(0); // Enable ENVID Bit
}
void Test_Lcd_SER_16Bit_240320_On(void)
{
int i,j,k;
printf("16bpp free-run test!\n");
Init_240X320_AMLCD();
LcdBGInit(MODE_SER_16BIT565_240320);
GlibInit(MODE_SER_16BIT565_240320, BGBUFFER1);
GlibClearScr(0);
k=0;
for(j=0; j<BG_YSIZE_240320; j++)
for(i=0; i<BG_XSIZE_240320; i++)
PutPixel(i,j,sghx600iqvga16[k++]);
LcdEnvidOnOff(1); // Enable ENVID Bit
printf("If you want to stop, press any key\n");
getchar();
LcdEnvidOnOff(0);
}
void Test_Lcd_SER_24Bit_240320_On(void)
{
int i,j,k;
unsigned int *temp = (unsigned int *)LCDFRAMEBUFFERBG1;
printf("24bpp free-run test!\n");
Init_240X320_AMLCD();
LcdBGInit(MODE_SER_24BIT_240320|MODE_NO_VIRTUAL_24B);
GlibInit(MODE_SER_24BIT_240320|MODE_NO_VIRTUAL_24B, BGBUFFER1);
GlibClearScr(0);
k=0;
for(j=0; j<BG_YSIZE_240320; j++)
for(i=0; i<BG_XSIZE_240320; i++)
PutPixel(i,j,sghx600qvga18[k++]);
LcdEnvidOnOff(1);
printf("If you want to stop, press any key\n");
getchar();
LcdEnvidOnOff(0); // Disable ENVID Bit
}
void Test_Lcd_SER_8Bit_240320(void)
{
int i,j,k;
Init_240X320_AMLCD();
PaletteInit(PAL_565_8BPPBG); // Initialize 256 palette
LcdBGInit(MODE_SER_8BIT_240320);
GlibInit(MODE_SER_8BIT_240320, BGBUFFER1);
rLCDCON1=(rLCDCON1&~(3<<28))|(2<<28);
printf("[256 COLOR(8bit/1pixel) Parallel Mode LCD TEST]\n");
GlibClearScr(0); // Fill the LCD panel with Black Color
LcdEnvidOnOff(1); // Enable ENVID Bit
getchar();
GlibFilledRectangle(0, 0, BG_XSIZE_240320/2-1, BG_YSIZE_240320-1,51);
GlibFilledRectangle(BG_XSIZE_240320/2 , 0, BG_XSIZE_240320-1, BG_YSIZE_240320-1,52);
printf("256 Color Parallel mode test 1. Press any key to continue!\n");
getchar();
GlibClearScr(0); // Fill the LCD panel with Black Color
k=0;
for(j=0; j<BG_YSIZE_240320; j+=16)
for(i=0; i<BG_XSIZE_240320; i+=16)
GlibFilledRectangle(i,j,i+15,j+15,(k++)%255);
printf("256 Color Parallel mode test 2. Press any key to continue!\n");
getchar();
GlibClearScr(0); // Fill the LCD panel with Black Color
k=0;
for(j=0; j<BG_YSIZE_240320; j+=10)
for(i=0; i<BG_XSIZE_240320; i+=8)
GlibFilledRectangle(i, j, i+7, j+9, (k++)%255);
printf("256 Color Parallel mode test 3. Press any key to continue!\n");
getchar();
GlibClearScr(0); // Fill the LCD panel with Black Color
//First Quarter
GlibRectangle(0, 0, BG_XSIZE_240320-1, BG_YSIZE_240320-1, 255); //red
GlibLine(0, 0, BG_XSIZE_240320-1, BG_YSIZE_240320-1, 3);//red
GlibLine(0, BG_YSIZE_240320-1, BG_XSIZE_240320-1, 0, 3);//red
//Second Quarter
GlibFilledRectangle(BG_XSIZE_240320, 0, BG_XSIZE_240320+29, 29, 8);
GlibFilledRectangle(BG_VXSIZE_240320-30, 0, BG_VXSIZE_240320-1, 29, 18);
GlibFilledRectangle(BG_XSIZE_240320, BG_YSIZE_240320-30, BG_XSIZE_240320+29, BG_YSIZE_240320-1, 150);
GlibFilledRectangle(BG_VXSIZE_240320-30, BG_YSIZE_240320-30, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 200);
GlibRectangle(BG_XSIZE_240320, 0, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 255);
GlibLine(BG_XSIZE_240320, 0, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 3);
GlibLine(BG_XSIZE_240320, BG_YSIZE_240320-1, BG_VXSIZE_240320-1, 0, 3);
//Third Quarter
GlibRectangle(0, BG_YSIZE_240320, BG_XSIZE_240320-1, BG_VYSIZE_240320-1, 18);
GlibLine(0, BG_YSIZE_240320, BG_XSIZE_240320-1, BG_YSIZE_240320+BG_YSIZE_240320/2, 255);
GlibLine(0, BG_VYSIZE_240320-1, BG_XSIZE_240320-1, BG_YSIZE_240320+BG_YSIZE_240320/2, 255);
GlibLine(0, BG_YSIZE_240320+BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_YSIZE_240320, 255);
GlibLine(0, BG_YSIZE_240320+BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_VYSIZE_240320-1, 255);
//Fourth Quarter
GlibRectangle(BG_XSIZE_240320, BG_YSIZE_240320, BG_VXSIZE_240320-1, BG_VYSIZE_240320-1, 255);
GlibLine(BG_XSIZE_240320, BG_YSIZE_240320, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_VYSIZE_240320-1, 3);
GlibLine(BG_VXSIZE_240320-1, BG_YSIZE_240320, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_VYSIZE_240320-1, 3);
GlibLine(BG_XSIZE_240320, BG_VYSIZE_240320-1, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_YSIZE_240320, 3);
GlibLine(BG_VXSIZE_240320-1, BG_VYSIZE_240320-1, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_YSIZE_240320, 3);
printf("256 Color Parallel mode test for Virtual Screen. Press any key[ijkm\\r]!\n");
MoveViewPort(MODE_SER_8BIT_240320, BGBUFFER1);
LcdMoveViewPort(0, 0, MODE_SER_8BIT_240320, BGBUFFER1);
LcdEnvidOnOff(0);
}
void Test_Lcd_SER_16Bit565_240320(void)
{
int i,j,k;
unsigned int tempval;
Init_240X320_AMLCD();
LcdBGInit(MODE_SER_16BIT565_240320);
GlibInit(MODE_SER_16BIT565_240320, BGBUFFER1);
printf("[64K COLOR(16bit/1pixel) Parallel Mode LCD TEST]\n");
GlibClearScr(0); // Fill the LCD panel with Black Color
LcdEnvidOnOff(1); // Enable ENVID Bit
getchar();
GlibFilledRectangle(0, 0, BG_XSIZE_240320/2-1, BG_YSIZE_240320-1,0);
GlibFilledRectangle(BG_XSIZE_240320/2 , 0, BG_XSIZE_240320-1, BG_YSIZE_240320-1,0xffff);
printf("64K Color Parallel mode test 1. Press any key to continue!\n");
getchar();
GlibClearScr(0); // Fill the LCD panel with Black Color
GlibFilledRectangle(0, 0, BG_XSIZE_240320/2-1, BG_YSIZE_240320/2-1, 0xf800); //red
GlibFilledRectangle(BG_XSIZE_240320/2, 0, BG_XSIZE_240320-1, BG_YSIZE_240320/2-1, 0x7e0);//green
GlibFilledRectangle(0, BG_YSIZE_240320/2, BG_XSIZE_240320/2-1, BG_YSIZE_240320-1,0x1f);//blue
GlibFilledRectangle(BG_XSIZE_240320/2, BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_YSIZE_240320-1,0xffff);//white
printf("64K Color Parallel mode test 2. Press any key to continue!\n");
getchar();
GlibClearScr(0); // Fill the LCD panel with White Color
k=0;
for(j=0; j<BG_YSIZE_240320; j+=16)
for(i=0; i<BG_XSIZE_240320; i+=16) {
tempval = ((10*((k>>4)%4)+1)<<11) +((21*((k>>2)%4))<<6)+((10*(k%4))+1);
k++;
GlibFilledRectangle(i, j, i+15, j+15, tempval);
}
printf("64K Color Parallel mode test 3. Press any key to continue!\n");
getchar();
GlibClearScr(0); // Fill the LCD panel with White Color
k=0;
for(j=0; j<BG_YSIZE_240320; j+=10)
for(i=0; i<BG_XSIZE_240320; i+=10) {
tempval = ((10*((k>>4)%4)+1)<<11) +((21*((k>>2)%4))<<6)+((10*(k%4))+1);
k++;
GlibFilledRectangle(i, j, i+9, j+9, tempval);
}
printf("64K Color Parallel mode test 4. Press any key to continue!\n");
getchar();
GlibClearScr(0); // Fill the LCD panel with Black Color
//First Quarter
GlibRectangle(0, 0, BG_XSIZE_240320-1, BG_YSIZE_240320-1, 0xf801); //red
GlibLine(0, 0, BG_XSIZE_240320-1, BG_YSIZE_240320-1, 0xff);//red
GlibLine(0, BG_YSIZE_240320-1, BG_XSIZE_240320-1, 0, 0xff);//red
//Second Quarter
GlibFilledRectangle(BG_XSIZE_240320, 0, BG_XSIZE_240320+29, 29, 0xf800);
GlibFilledRectangle(BG_VXSIZE_240320-30, 0, BG_VXSIZE_240320-1, 29, 0x7e0);
GlibFilledRectangle(BG_XSIZE_240320, BG_YSIZE_240320-30, BG_XSIZE_240320+29, BG_YSIZE_240320-1, 0x1f);
GlibFilledRectangle(BG_VXSIZE_240320-30, BG_YSIZE_240320-30, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 0xffff);
GlibRectangle(BG_XSIZE_240320, 0, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 0xf800);
GlibLine(BG_XSIZE_240320, 0, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 0xff);
GlibLine(BG_XSIZE_240320, BG_YSIZE_240320-1, BG_VXSIZE_240320-1, 0, 0xff);
//Third Quarter
GlibRectangle(0, BG_YSIZE_240320, BG_XSIZE_240320-1, BG_VYSIZE_240320-1, 0xf800);
GlibLine(0, BG_YSIZE_240320, BG_XSIZE_240320-1, BG_YSIZE_240320+BG_YSIZE_240320/2, 0xff00);
GlibLine(0, BG_VYSIZE_240320-1, BG_XSIZE_240320-1, BG_YSIZE_240320+BG_YSIZE_240320/2, 0xff00);
GlibLine(0, BG_YSIZE_240320+BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_YSIZE_240320, 0xff00);
GlibLine(0, BG_YSIZE_240320+BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_VYSIZE_240320-1, 0xff00);
//Fourth Quarter
GlibRectangle(BG_XSIZE_240320, BG_YSIZE_240320, BG_VXSIZE_240320-1, BG_VYSIZE_240320-1, 0xf800);
GlibLine(BG_XSIZE_240320, BG_YSIZE_240320, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_VYSIZE_240320-1, 0xff0);
GlibLine(BG_VXSIZE_240320-1, BG_YSIZE_240320, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_VYSIZE_240320-1, 0xff0);
GlibLine(BG_XSIZE_240320, BG_VYSIZE_240320-1, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_YSIZE_240320, 0xff0);
GlibLine(BG_VXSIZE_240320-1, BG_VYSIZE_240320-1, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_YSIZE_240320, 0xff0);
printf("64K Color Parallel mode test for Virtual Screen. Press any key[ijkm\\r]!\n");
MoveViewPort(MODE_SER_16BIT565_240320, BGBUFFER1);
LcdMoveViewPort(0, 0, MODE_SER_16BIT565_240320, BGBUFFER1);
LcdEnvidOnOff(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -