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

📄 lcd.c

📁 三星s3c2460开发板完整功能测试代码
💻 C
📖 第 1 页 / 共 5 页
字号:
		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 + -