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

📄 lcd.c

📁 三星s3c2460开发板完整功能测试代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	//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_PAR_8BITNP_240320, BGBUFFER1);
	LcdMoveViewPort(0, 0, MODE_PAR_8BITNP_240320, BGBUFFER1);
	LcdEnvidOnOff(0);
}

void Test_Lcd_PAR_16Bit565_240320(void)
{
	int i,j,k;
	unsigned int tempval;

	LcdBGInit(MODE_PAR_16BIT565_240320);
	GlibInit(MODE_PAR_16BIT565_240320, BGBUFFER1);

#if BGRTEST
	rLCDCON1=(rLCDCON1&~(3<<9))|(1<<9);
#endif

	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_PAR_16BIT565_240320, BGBUFFER1);
	LcdMoveViewPort(0, 0, MODE_PAR_16BIT565_240320, BGBUFFER1);
	LcdEnvidOnOff(0);
}

void Test_Lcd_PAR_16Bit5551_240320(void)
{
	int i,j,k;
	unsigned int tempval;

	LcdBGInit(MODE_PAR_16BIT5551_240320);
	GlibInit(MODE_PAR_16BIT5551_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_PAR_16BIT5551_240320, BGBUFFER1);
	LcdMoveViewPort(0, 0, MODE_PAR_16BIT5551_240320, BGBUFFER1);
	LcdEnvidOnOff(0);
}


void Test_Lcd_PAR_24Bit_240320(void)
{
	int i,j,k;
	unsigned int tempval;


	LcdBGInit(MODE_PAR_24BIT_240320);
	GlibInit(MODE_PAR_24BIT_240320, BGBUFFER1);

	printf("[256K COLOR(18bit/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,0xfcfcfc);	
	printf("256K 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, 0xfc0000); //red
	GlibFilledRectangle(BG_XSIZE_240320/2, 0, BG_XSIZE_240320-1, BG_YSIZE_240320/2-1, 0xfc00);//green
	GlibFilledRectangle(0, BG_YSIZE_240320/2, BG_XSIZE_240320/2-1, BG_YSIZE_240320-1,0xfc);//blue
	GlibFilledRectangle(BG_XSIZE_240320/2, BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_YSIZE_240320-1,0xfcfcfc);//white	
	printf("256K 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 = ((85*((k>>4)%4))<<16) +((85*((k>>2)%4))<<8)+((85*(k%4)));
			k++;
			GlibFilledRectangle(i, j, i+15, j+15, tempval); 
		}	
	printf("256K 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 = ((85*((k>>4)%4))<<16) +((85*((k>>2)%4))<<8)+((85*(k%4)));
			k++;
			GlibFilledRectangle(i, j, i+9, j+9, tempval); 
		}	
	printf("256K 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, 0xfc0000); //red
	GlibLine(0, 0, BG_XSIZE_240320-1, BG_YSIZE_240320-1, 0xcfc);//red
	GlibLine(0, BG_YSIZE_240320-1, BG_XSIZE_240320-1, 0, 0xcfc);//red
	//Second Quarter
	GlibFilledRectangle(BG_XSIZE_240320, 0, BG_XSIZE_240320+29, 29, 0xfc0000);
	GlibFilledRectangle(BG_VXSIZE_240320-30, 0, BG_VXSIZE_240320-1, 29, 0xfc00);
	GlibFilledRectangle(BG_XSIZE_240320, BG_YSIZE_240320-30, BG_XSIZE_240320+29, BG_YSIZE_240320-1, 0xfc);
	GlibFilledRectangle(BG_VXSIZE_240320-30, BG_YSIZE_240320-30, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 0xfcfcfc);
	GlibRectangle(BG_XSIZE_240320, 0, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 0xfc0000);
	GlibLine(BG_XSIZE_240320, 0, BG_VXSIZE_240320-1, BG_YSIZE_240320-1, 0xcfc);
	GlibLine(BG_XSIZE_240320, BG_YSIZE_240320-1, BG_VXSIZE_240320-1, 0, 0xcfc);	
	//Third Quarter
	GlibRectangle(0, BG_YSIZE_240320, BG_XSIZE_240320-1, BG_VYSIZE_240320-1, 0xfc0000);
	GlibLine(0, BG_YSIZE_240320, BG_XSIZE_240320-1, BG_YSIZE_240320+BG_YSIZE_240320/2, 0xfcf000);
	GlibLine(0, BG_VYSIZE_240320-1, BG_XSIZE_240320-1, BG_YSIZE_240320+BG_YSIZE_240320/2, 0xfcf000);
	GlibLine(0, BG_YSIZE_240320+BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_YSIZE_240320, 0xfcf000);	
	GlibLine(0, BG_YSIZE_240320+BG_YSIZE_240320/2, BG_XSIZE_240320-1, BG_VYSIZE_240320-1, 0xfcf000);	
	//Fourth Quarter
	GlibRectangle(BG_XSIZE_240320, BG_YSIZE_240320, BG_VXSIZE_240320-1, BG_VYSIZE_240320-1, 0xfc0000);
	GlibLine(BG_XSIZE_240320, BG_YSIZE_240320, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_VYSIZE_240320-1, 0xfcf000);
	GlibLine(BG_VXSIZE_240320-1, BG_YSIZE_240320, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_VYSIZE_240320-1, 0xfcf000);
	GlibLine(BG_XSIZE_240320, BG_VYSIZE_240320-1, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_YSIZE_240320, 0xfcf000);
	GlibLine(BG_VXSIZE_240320-1, BG_VYSIZE_240320-1, BG_XSIZE_240320+BG_XSIZE_240320/2, BG_YSIZE_240320, 0xfcf000);	

	printf("256K Color Parallel mode test for Virtual Screen. Press any key[ijkm\\r]!\n");
	MoveViewPort(MODE_PAR_24BIT_240320, BGBUFFER1);
	LcdMoveViewPort(0, 0, MODE_PAR_24BIT_240320, BGBUFFER1);
	LcdEnvidOnOff(0);
}


void Test_Lcd_BGColorMap_240320(void)
{	

	unsigned int i,j,k;
	unsigned int whichframebuffer;
	

//	framecnt=0;

//	LcdEnvidOnOff(0);


	rSUBSRCPND|=BIT_SUB_LCD_VSYNC;
	rSRCPND=BIT_LCD;
	rINTPND=rINTPND;
	
	pISR_LCD=(unsigned)Lcd_Int_DualBuffer;
	rINTMSK &= ~(BIT_LCD);
	rINTSUBMSK &= ~(BIT_SUB_LCD_VSYNC);

	//LCD setting for background
	LcdBGInit(MODE_PAR_16BIT565_240320);

	//Glib initialization for proper display mode and framebuffer
	GlibInit(MODE_PAR_16BIT565_240320, BGBUFFER1);
	whichframebuffer=BGBUFFER1;
	
	GlibClearScr(0); // Fill the LCD panel with Black Color

	
	//Drawing Image on the first Framebuffer for Background

	//First Quarter
	k=0;
	for(j=0; j<BG_YSIZE_240320; j++)
		for(i=0; i<BG_XSIZE_240320; i++)
			PutPixel(i,j,sghx600qvga16[k++]);
	//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);	


	LcdEnableFrameInterrupt(FRAMESEL0_VSYNC, FRAMESEL1_NONE);

	framecnt=0;	
	while(!Uart_GetKey()) {
		while(framecnt!=60);
		if(whichframebuffer==BGBUFFER1) {
			LcdBGColorMap(1, 0xfc);
			printf("Display is changed to Background COLOR MAP!\n");			
			whichframebuffer=BGCOLORMAP;
		}
		else if(whichframebuffer==BGCOLORMAP) {
//			LcdSelectBuffer(BGBUFFER1);
			LcdBGColorMap(0, 0xfc);
			printf("Display is changed to BUFFER1!\n");
			whichframebuffer=BGBUFFER1;
		}	
		framecnt=0;		
//		rINTSUBMSK &= ~(BIT_SUB_LCD_VSYNC);		
	}

	framecnt=0;

	rINTSUBMSK|=BIT_SUB_LCD_VSYNC;
	rINTMSK|=BIT_LCD;
	LcdDisableFrameInterrupt();
	printf("Press any key to continue\n");
	getchar();
	LcdBGColorMap(0,0);
	
}


void Test_Lcd_FGColorMap_240320(void)
{	

	unsigned int i,j,k;
	unsigned int flag;
	


	rSUBSRCPND|=BIT_SUB_LCD_VSYNC;
	rSRCPND=BIT_LCD;
	rINTPND=rINTPND;
	
	pISR_LCD=(unsigned)Lcd_Int_DualBuffer;
	rINTMSK &= ~(BIT_LCD);
	rINTSUBMSK &= ~(BIT_SUB_LCD_VSYNC);

	//LCD setting for background
	LcdBGInit(MODE_PAR_16BIT565_240320);
	GlibInit(MODE_PAR_16BIT565_240320, BGBUFFER1);
	GlibClearScr(0); // Fill the LCD panel with Black Color

	k=0;
	for(j=0; j<BG_YSIZE_240320; j++)
		for(i=0; i<BG_XSIZE_240320; i++)
			PutPixel(i,j,sghx600qvga16[k++]);


	//LCD setting for foreground
	LcdFGInit(MODE_OSD_16BIT565_240320);
	GlibInit(MODE_OSD_16BIT565_240320, FGBUFFER1);
	GlibClearScr(0); // Fill the LCD panel with Black Color

	k=0;
	for(j=0; j<FG_YSIZE_240320; j++)
		for(i=0; i<FG_XSIZE_240320; i++)
			PutPixel(i,j, sghx600iqqvga16[k++]);

	LcdOsdSelectFunction(OSD_BLENDING);
	LcdOsdSetAlpha(0xff);
	LcdOsdChangeCoordination(60,80,60+FG_XSIZE_240320-1, 80+FG_YSIZE_240320-1);
	LcdOsdEnDiable(1);

	LcdEnableFrameInterrupt(FRAMESEL0_VSYNC, FRAMESEL1_NONE);

	framecnt=0;
	flag=0;
	while(!Uart_GetKey()) {
		while(framecnt!=60);

⌨️ 快捷键说明

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