📄 post.c
字号:
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 + -