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

📄 post.c

📁 三星s3c2460开发板完整功能测试代码
💻 C
📖 第 1 页 / 共 4 页
字号:
			InFrameBuffer, OutFrameBuffer, mode);

	pISR_CAMIF_BLOCK_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_CAMIF_BLOCK_POST);
	rINTSUBMSK2 &= ~(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

	rINTSUBMSK2 |= BIT_SUB_POST;
	rINTMSK |= BIT_CAMIF_BLOCK_POST;
	
}

void Test_Post_QCIF_YCbCr420_PQVGA_16B(void)
{

	unsigned int OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	unsigned int OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	unsigned int InFrameBuffer, OutFrameBuffer;
	unsigned int 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_CAMIF_BLOCK_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_CAMIF_BLOCK_POST);
	rINTSUBMSK2 &= ~(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

	rINTSUBMSK2 |= BIT_SUB_POST;
	rINTMSK |= BIT_CAMIF_BLOCK_POST;
	
}

void Test_Post_QCIF_YCbCr420_PQVGA_24B(void)
{

	unsigned int OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	unsigned int OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	unsigned int InFrameBuffer, OutFrameBuffer;
	unsigned int 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_RGB24B;
	
	//LCD Initialization 
	LcdBGInit(MODE_PAR_24BIT_240320|MODE_NO_VIRTUAL_24B);	


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

	pISR_CAMIF_BLOCK_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_CAMIF_BLOCK_POST);
	rINTSUBMSK2 &= ~(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

	rINTSUBMSK2 |= BIT_SUB_POST;
	rINTMSK |= BIT_CAMIF_BLOCK_POST;
	
}

void Test_Post_PQVGA_YCbCr420_PQVGA_16B(void)
{

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

	OrgSrcWidth=SrcWidth=PQVGA_XSIZE; //no source offset
	OrgSrcHeight=SrcHeight=PQVGA_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=0;
	printf("Select Input format of Post Processor\n");
	printf("0:YCBYCR420, 1:YCBYCR422, 2:CBYCRY\n");
	i=GetIntNum();
	switch(i) {
		case 0:
			mode|=POST_IN_YCBYCR420;
			break;
		case 1:
			mode|=POST_IN_YCBYCR422;
			break;
		case 2:
			mode|=POST_IN_CBYCRY422;
			break;			
		default:			
			mode|=POST_IN_YCBYCR420;
			break;
	}	

	printf("Select Output format of Post Processor\n");
	printf("0:RG16, 1:RGB24\n");
	i=GetIntNum();
	switch(i) {
		case 0:
			mode|=POST_OUT_RGB16B;
			LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);
			break;
		case 1:
			mode|=POST_OUT_RGB24B;
			LcdBGInit(MODE_PAR_24BIT_240320|MODE_NO_VIRTUAL_24B);
			break;
		default:			
			mode|=POST_OUT_RGB16B;
			LcdBGInit(MODE_PAR_16BIT565_240320|MODE_NO_VIRTUAL_16B);
			break;
	}
	
	//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_CAMIF_BLOCK_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_CAMIF_BLOCK_POST);
	rINTSUBMSK2 &= ~(BIT_SUB_POST);

	printf("rMODE:0x%x\n", rMODE);

#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

	rINTSUBMSK2 |= BIT_SUB_POST;
	rINTMSK |= BIT_CAMIF_BLOCK_POST;
	
}

void Test_Post_PQVGA_YCbCr420_PQVGA_24B(void)
{

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

	OrgSrcWidth=SrcWidth=PQVGA_XSIZE; //no source offset
	OrgSrcHeight=SrcHeight=PQVGA_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_24BIT_240320|MODE_NO_VIRTUAL_24B);	


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

	pISR_CAMIF_BLOCK_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_CAMIF_BLOCK_POST);
	rINTSUBMSK2 &= ~(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

	rINTSUBMSK2 |= BIT_SUB_POST;
	rINTMSK |= BIT_CAMIF_BLOCK_POST;
	
}


void Test_Post_CIF_YCbCr420_PQVGA_16B(void)
{

	unsigned int OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	unsigned int OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	unsigned int InFrameBuffer, OutFrameBuffer;
	unsigned int 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_CAMIF_BLOCK_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_CAMIF_BLOCK_POST);
	rINTSUBMSK2 &= ~(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

	rINTSUBMSK2 |= BIT_SUB_POST;
	rINTMSK |= BIT_CAMIF_BLOCK_POST; 
	
}

void Test_Post_CIF_YCbCr420_PQVGA_24B(void)
{

	unsigned int OrgSrcWidth, OrgSrcHeight, SrcWidth, SrcHeight, SrcStartX, SrcStartY;
	unsigned int OrgDstWidth, OrgDstHeight, DstWidth, DstHeight, DstStartX, DstStartY;
	unsigned int InFrameBuffer, OutFrameBuffer;
	unsigned int 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_24BIT_240320|MODE_NO_VIRTUAL_24B);	


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

	pISR_CAMIF_BLOCK_POST=(unsigned)PostIsr;
	rINTMSK &= ~(BIT_CAMIF_BLOCK_POST);
	rINTSUBMSK2 &= ~(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

	rINTSUBMSK2 |= BIT_SUB_POST;
	rINTMSK |= BIT_CAMIF_BLOCK_POST;
 
	
}


void Test_Post_QCIF_YCbCr420_PQVGA_16B_Offset(void)
{

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

⌨️ 快捷键说明

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