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

📄 post.c

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 C
📖 第 1 页 / 共 3 页
字号:
	if(mode&POST_OUT_RGB16B)
		amount+=OrgDstWidth*OrgDstHeight*2;
	else if(mode&POST_OUT_RGB24B)
		amount+=OrgDstWidth*OrgDstHeight*4;
	PostStartProcessing(amount, 0);
#endif

	while(!postProcessingDone); //waiting for post-processing done 
	postProcessingDone=0;
	
	LcdEnvidOnOff(1); //LCD Envid On

	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST; 
	
}

void Test_Post_CIF_YCbCr420_PQVGA_24B(void)
{

	U32 OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	U32 OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	U32 InFrameBuffer, OutFrameBuffer;
	U32 mode;

	OrgSrcWidth=SrcWidth=CIF_XSIZE; //no source offset
	OrgSrcHeight=SrcHeight=CIF_YSIZE; //no source offset
	SrcStartX=SrcStartY=0;
	OrgDstWidth=DstWidth=PQVGA_XSIZE; //no destination offset
	OrgDstHeight=DstHeight=PQVGA_YSIZE; //no destination offset
	DstStartX=DstStartY=0;
	InFrameBuffer=downloadAddress;
	OutFrameBuffer=LCDFRAMEBUFFERBG1;
	mode=POST_IN_YCBYCR420|POST_OUT_RGB24B;
	
	//LCD Initialization 
	LcdBGInit(MODE_PAR_18BIT_240320|MODE_NO_VIRTUAL_24B);	


	PostInit(OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY, 
			OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY, 
			InFrameBuffer, OutFrameBuffer, mode);

	pISR_LCD_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_LCD_POST);
	rINTSUBMSK &= ~(BIT_SUB_POST);

#if 1
	PostStartProcessing(0);
#else
	if(mode&POST_IN_YCBYCR420)
		amount=OrgSrcWidth*OrgSrcHeight*3/2;

	if(mode&POST_OUT_RGB16B)
		amount+=OrgDstWidth*OrgDstHeight*2;
	else if(mode&POST_OUT_RGB24B)
		amount+=OrgDstWidth*OrgDstHeight*4;
	PostStartProcessing(amount, 0);
#endif

	while(!postProcessingDone); //waiting for post-processing done 
	postProcessingDone=0;
	
	LcdEnvidOnOff(1); //LCD Envid On

	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST;
 
	
}


void Test_Post_QCIF_YCbCr420_PQVGA_16B_Offset(void)
{

	U32 OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	U32 OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	U32 InFrameBuffer, OutFrameBuffer;
	U32 mode;

	OrgSrcWidth=SrcWidth=QCIF_XSIZE; //no source offset
	OrgSrcHeight=SrcHeight=QCIF_YSIZE; //no source offset
	SrcStartX=SrcStartY=0;
	OrgDstWidth=DstWidth=PQVGA_XSIZE; //no destination offset
	OrgDstHeight=DstHeight=PQVGA_YSIZE; //no destination offset
	DstStartX=DstStartY=0;
	InFrameBuffer=downloadAddress;
	OutFrameBuffer=LCDFRAMEBUFFERBG1;
	mode=POST_IN_YCBYCR420|POST_OUT_RGB16B;
	
	//LCD Initialization 
	LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);	


	PostInit(OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY, 
			OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY, 
			InFrameBuffer, OutFrameBuffer, mode);

	pISR_LCD_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_LCD_POST);
	rINTSUBMSK &= ~(BIT_SUB_POST);

#if 1
	PostStartProcessing(0);
#else
	if(mode&POST_IN_YCBYCR420)
		amount=OrgSrcWidth*OrgSrcHeight*3/2;

	if(mode&POST_OUT_RGB16B)
		amount+=OrgDstWidth*OrgDstHeight*2;
	else if(mode&POST_OUT_RGB24B)
		amount+=OrgDstWidth*OrgDstHeight*4;
	PostStartProcessing(amount, 0);
#endif

	while(!postProcessingDone); //waiting for post-processing done 
	postProcessingDone=0;
	
	LcdEnvidOnOff(1); //LCD Envid On

	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST; 
	while(!postProcessingDone);
	
	//LCD Envid On have to be executed in this point.

	Uart_Printf("Test of Zoom In/Out, PIP Operation\n");
	Uart_Printf("w.z.s.a for Zoom in/out\n");	
	Uart_Printf("r.c.f.d for Coordination of zoomed image\n");
	Uart_Printf("y.b.h.g for PIP\n");	
	Uart_Printf("i.m.k.j for Coordination of PIP image\n");

	while(1) {

	// Code is needed.......	 
	
	 }

	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST;
	
}

void Test_Post_2M_YCbCr420_PQVGA_16B(void)
{

	U32 OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	U32 OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	U32 InFrameBuffer, OutFrameBuffer;
	U32 mode;
	U32 i;

	OrgSrcWidth=SrcWidth=1600; //no source offset
	OrgSrcHeight=SrcHeight=1200; //no source offset
	SrcStartX=SrcStartY=0;
	OrgDstWidth=DstWidth=PQVGA_XSIZE; //no destination offset
	OrgDstHeight=DstHeight=PQVGA_YSIZE; //no destination offset
	DstStartX=DstStartY=0;
//	InFrameBuffer=downloadAddress;
	InFrameBuffer=0x12000000;
	OutFrameBuffer=LCDFRAMEBUFFERBG1;
	mode=POST_IN_YCBYCR420|POST_OUT_RGB16B;
	
	//LCD Initialization 
	LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);	


	PostInit(OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY, 
			OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY, 
			InFrameBuffer, OutFrameBuffer, mode);

	pISR_LCD_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_LCD_POST);
	rINTSUBMSK &= ~(BIT_SUB_POST);

#if 1
	PostStartProcessing(0);
#else
	if(mode&POST_IN_YCBYCR420)
		amount=OrgSrcWidth*OrgSrcHeight*3/2;

	if(mode&POST_OUT_RGB16B)
		amount+=OrgDstWidth*OrgDstHeight*2;
	else if(mode&POST_OUT_RGB24B)
		amount+=OrgDstWidth*OrgDstHeight*4;
	PostStartProcessing(amount, 0);
#endif

	while(!postProcessingDone); //waiting for post-processing done 
	postProcessingDone=0;

	LcdEnvidOnOff(1); //LCD Envid On

	while(1) {
		Uart_Printf("0: Disable Dithering, 1: Enable Dithering \n");
		i=Uart_GetIntNum();
		if(i==0) rLCDDITHCON &= ~(1);
		else if(i==1) rLCDDITHCON =(3<<5)|(1<<3)|(3<<1)|(1);
		Uart_Printf("rLCDDITHCON:0x%x\n", rLCDDITHCON);
	}
	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST; 
	
}

void Test_Post_2M_YCbCr420_PQVGA_24B(void)
{

	U32 OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	U32 OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	U32 InFrameBuffer, OutFrameBuffer;
	U32 mode;
	U32 i;

	OrgSrcWidth=SrcWidth=1600; //no source offset
	OrgSrcHeight=SrcHeight=1200; //no source offset
	SrcStartX=SrcStartY=0;
	OrgDstWidth=DstWidth=PQVGA_XSIZE; //no destination offset
	OrgDstHeight=DstHeight=PQVGA_YSIZE; //no destination offset
	DstStartX=DstStartY=0;
//	InFrameBuffer=downloadAddress;
	InFrameBuffer=0x12000000;
	OutFrameBuffer=LCDFRAMEBUFFERBG1;
	mode=POST_IN_YCBYCR420|POST_OUT_RGB24B;
	
	//LCD Initialization 
	LcdBGInit(MODE_PAR_18BIT_240320|MODE_NO_VIRTUAL_24B);	


	PostInit(OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY, 
			OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY, 
			InFrameBuffer, OutFrameBuffer, mode);

	pISR_LCD_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_LCD_POST);
	rINTSUBMSK &= ~(BIT_SUB_POST);

#if 1
	PostStartProcessing(0);
#else
	if(mode&POST_IN_YCBYCR420)
		amount=OrgSrcWidth*OrgSrcHeight*3/2;

	if(mode&POST_OUT_RGB16B)
		amount+=OrgDstWidth*OrgDstHeight*2;
	else if(mode&POST_OUT_RGB24B)
		amount+=OrgDstWidth*OrgDstHeight*4;
	PostStartProcessing(amount, 0);
#endif

	while(!postProcessingDone); //waiting for post-processing done 
	postProcessingDone=0;


	LcdEnvidOnOff(1); //LCD Envid On

	while(1) {
		Uart_Printf("0: Disable Dithering, 1: Enable Dithering \n");
		i=Uart_GetIntNum();
		if(i==0) rLCDDITHCON &= ~(1);
		else if(i==1) rLCDDITHCON =(1<<5)|(1<<3)|(1<<1)|(1);
		Uart_Printf("rLCDDITHCON:0x%x\n", rLCDDITHCON);
	}


	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST;
 
	
}

void Test_Post_CIF_YCbCr420_PQVGA_16B_Offset(void)
{

	U32 OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	U32 OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	U32 InFrameBuffer, OutFrameBuffer;
	U32 mode;

	OrgSrcWidth=SrcWidth=CIF_XSIZE; //no source offset
	OrgSrcHeight=SrcHeight=CIF_YSIZE; //no source offset
	SrcStartX=SrcStartY=0;
	OrgDstWidth=DstWidth=PQVGA_XSIZE; //no destination offset
	OrgDstHeight=DstHeight=PQVGA_YSIZE; //no destination offset
	DstStartX=DstStartY=0;
	InFrameBuffer=downloadAddress;
	OutFrameBuffer=LCDFRAMEBUFFERBG1;
	mode=POST_IN_YCBYCR420|POST_OUT_RGB16B;
	
	//LCD Initialization 
	LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);	


	PostInit(OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY, 
			OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY, 
			InFrameBuffer, OutFrameBuffer, mode);

	pISR_LCD_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_LCD_POST);
	rINTSUBMSK &= ~(BIT_SUB_POST);

#if 1
	PostStartProcessing(0);
#else
	if(mode&POST_IN_YCBYCR420)
		amount=OrgSrcWidth*OrgSrcHeight*3/2;

	if(mode&POST_OUT_RGB16B)
		amount+=OrgDstWidth*OrgDstHeight*2;
	else if(mode&POST_OUT_RGB24B)
		amount+=OrgDstWidth*OrgDstHeight*4;
	PostStartProcessing(amount, 0);
#endif

	while(!postProcessingDone); //waiting for post-processing done 
	postProcessingDone=0;
	
	LcdEnvidOnOff(1); //LCD Envid On

	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST; 
	while(!postProcessingDone);
	
	//LCD Envid On have to be executed in this point.

	Uart_Printf("Test of Zoom In/Out, PIP Operation\n");
	Uart_Printf("w.z.s.a for Zoom in/out\n");	
	Uart_Printf("r.c.f.d for Coordination of zoomed image\n");
	Uart_Printf("y.b.h.g for PIP\n");	
	Uart_Printf("i.m.k.j for Coordination of PIP image\n");

	while(1) {

	// Code is needed.......	 
	
	 }

	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST;
	
}

/*
void PostEnvidOn(void)
{
	rMODE|=(1<<5);
}
*/

void Test_Post_YCbCr420_PQVGA_Padded(void)
{

	U32 OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	U32 OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	U32 InFrameBuffer, OutFrameBuffer;
	U32 mode;
	U32 i;

	Uart_Printf("Select size of input image[0:QCIF, 1:CIF]:");
	i=Uart_GetIntNum();
	if(i==0) {
		SrcWidth=QCIF_XSIZE;
		SrcHeight=QCIF_YSIZE;
		OrgSrcWidth=QCIF_XSIZE+32;
		OrgSrcHeight=QCIF_YSIZE+32;
	}
	else if(i==1) {
		SrcWidth=CIF_XSIZE;
		SrcHeight=CIF_YSIZE;
		OrgSrcWidth=CIF_XSIZE+32;
		OrgSrcHeight=CIF_YSIZE+32;
	}

	Uart_Printf("\n");
	Uart_Printf("Select bpp of output image[0:16B, 1:24B]:");
	i=Uart_GetIntNum();
	if(i==0) {
		mode=POST_IN_YCBYCR420|POST_OUT_RGB16B;
		LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);
	}
	else if(i==1) {
		mode=POST_IN_YCBYCR420|POST_OUT_RGB24B;
		LcdBGInit(MODE_PAR_18BIT_240320|MODE_NO_VIRTUAL_24B);
	}
	
//	OrgSrcWidth=SrcWidth=CIF_XSIZE; //no source offset
//	OrgSrcHeight=SrcHeight=CIF_YSIZE; //no source offset
	SrcStartX=SrcStartY=16;
	OrgDstWidth=DstWidth=PQVGA_XSIZE; //no destination offset
	OrgDstHeight=DstHeight=PQVGA_YSIZE; //no destination offset
	DstStartX=DstStartY=0;
	InFrameBuffer=downloadAddress;
	OutFrameBuffer=LCDFRAMEBUFFERBG1;
//	mode=POST_IN_YCBYCR420|POST_OUT_RGB16B;
	
	//LCD Initialization 
	//LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);	


	PostInit(OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY, 
			OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY, 
			InFrameBuffer, OutFrameBuffer, mode);

	pISR_LCD_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_LCD_POST);
	rINTSUBMSK &= ~(BIT_SUB_POST);

#if 1
	PostStartProcessing(0);
#else
	if(mode&POST_IN_YCBYCR420)
		amount=OrgSrcWidth*OrgSrcHeight*3/2;

	if(mode&POST_OUT_RGB16B)
		amount+=OrgDstWidth*OrgDstHeight*2;
	else if(mode&POST_OUT_RGB24B)
		amount+=OrgDstWidth*OrgDstHeight*4;
	PostStartProcessing(amount, 0);
#endif

	while(!postProcessingDone); //waiting for post-processing done 
	postProcessingDone=0;
	
	LcdEnvidOnOff(1); //LCD Envid On

	rINTSUBMSK |= BIT_SUB_POST;
	rINTMSK |= BIT_LCD_POST; 

	
}

void Test_Post_YCbCr420_PQVGA_Offset(void)
{

	S32 OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	S32 OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	U32 InFrameBuffer, OutFrameBuffer;
	U32 mode;
	U32 i;

	Uart_Printf("Select size of input image[0:QCIF, 1:CIF]:");
	i=Uart_GetIntNum();
	if(i==0) {
		OrgSrcWidth=QCIF_XSIZE;
		OrgSrcHeight=QCIF_YSIZE;
	}
	else if(i==1) {
		OrgSrcWidth=CIF_XSIZE;
		OrgSrcHeight=CIF_YSIZE;
	}
	else {
		Uart_Printf("Error is occured during seleting size of input image\n");
		return;
	}

	Uart_Printf("\n");
	Uart_Printf("Select bpp of output image[0:16B, 1:24B]:");
	i=Uart_GetIntNum();
	if(i==0) {
		mode=POST_IN_YCBYCR420|POST_OUT_RGB16B;
		LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);
		GlibInit(MODE_PAR_16BIT565_240320, BGBUFFER1);
	}
	else if(i==1) {
		mode=POST_IN_YCBYCR420|POST_OUT_RGB24B;
		LcdBGInit(MODE_PAR_18BIT_240320|MODE_NO_VIRTUAL_24B);
		GlibInit(MODE_PAR_18BIT_240320, BGBUFFER1);
	}
	else {
		Uart_Printf("Error is occured during seleting bpp of input image\n");
		return;
	}
	
	SrcWidth=OrgSrcWidth;
	SrcHeight=OrgSrcHeight;

⌨️ 快捷键说明

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