亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? camif.c

?? 三星給予ARM920T內核的S3C2413的demo版本
?? C
?? 第 1 頁 / 共 2 頁
字號:
			break;
		case CAM_S5X532:
			rCIGCTRL|= (1<<31)|(1<<30)|(1<<29); //camera I/F soft reset
			Delay(1);
			rCIGCTRL&= ~(1<<31);
			
			rCIGCTRL&=~(1<<30);	//external camera reset assertion (S5X433,AU70H=low active)	
			Delay(1000);
			rCIGCTRL|=(1<<30);		//external camera reset deassertion	

			rCIGCTRL|=(1<<26);  // XciPCLK Polarity setting
			break;
		default:
			break;
	}	

}

void SetCAMClockDivider(int divn)
{
    rCLKDIVN= (rCLKDIVN & ~(0xf<<16))|(divn<<16);    
}

/* Description of Parameters
CoDstWidth: Destination Width of Codec Path
CoDstHeight: Destination Height of Codec Path
PrDstWidth: Destination Width of Preview Path
PrDstHeight: Destination Height of Preview Path
WinHorOffset: Size of Window Offset for Horizontal Direction
WinVerOffset: Size of Window Offset for Vertical Direction
CoFrameBuffer: Start Address for Codec DMA
PrFrameBuffer: Start Address for Previe DMA
*/
void CamInit(U32 CoDstWidth, U32 CoDstHeight, U32 WinHorOffset, U32 WinVerOffset, U32 CoFrameBuffer)
{
	U32 WinOfsEn;
	U32 divisor, multiplier;
	U32 MainBurstSizeY, RemainedBurstSizeY, MainBurstSizeC, RemainedBurstSizeC, MainBurstSizeRGB, RemainedBurstSizeRGB;
	U32 H_Shift, V_Shift, PreHorRatio, PreVerRatio, MainHorRatio, MainVerRatio;
	U32 SrcWidth, SrcHeight;
	U32 OrgSrcWidth, OrgSrcHeight;
	U32 ScaleUp_H_Co, ScaleUp_V_Co, ScaleUp_H_Pr, ScaleUp_V_Pr;

	//constraint for size setting is checked here.........

	//constant for calculating codec dma address
	if(camCodecOutput==CAM_RGB24B)
		multiplier=4;
	else if(camCodecOutput==CAM_RGB16B)
		multiplier=2;

		
	
	if(WinHorOffset==0 && WinVerOffset==0)
		WinOfsEn=0;
	else
		WinOfsEn=1;

	switch(CAMSIZE) {
		case VGA_XSIZE:
			OrgSrcWidth=VGA_XSIZE;
			OrgSrcHeight=VGA_YSIZE;
			break;
		case MEGA1_XSIZE:
			OrgSrcWidth=MEGA1_XSIZE;
			OrgSrcHeight=MEGA1_YSIZE;
			break;
		case MEGA2_XSIZE:
			OrgSrcWidth=MEGA2_XSIZE;
			OrgSrcHeight=MEGA2_YSIZE;
			break;
		default:
			OrgSrcWidth=VGA_XSIZE;
			OrgSrcHeight=VGA_YSIZE;
			break;
	}		
		

	SrcWidth=OrgSrcWidth-2*WinHorOffset;
	SrcHeight=OrgSrcHeight-2*WinVerOffset;

	printf("SrcWidth:%d, SrcHeight:%d\n", SrcWidth, SrcHeight);
	if(SrcWidth<=CoDstWidth) ScaleUp_H_Co=1;
	else ScaleUp_H_Co=0;		

	if(SrcHeight<=CoDstHeight) ScaleUp_V_Co=1;
	else ScaleUp_V_Co=0;		


	rCIGCTRL = (rCIGCTRL & ~(0x3<<27))|(1<<26);
	//rCIGCTRL |= (0x1<<27)|(1<<26);
	rCISRCFMT=(CAM_ITU601<<31)|(0<<30)|(CAM_ITU601_8B<<29)|(OrgSrcWidth<<16)|(CAM_ORDER_YCRYCB<<14)|(OrgSrcHeight);
	rCIWDOFST=(WinOfsEn<<31)|(WinHorOffset<<16)|(WinVerOffset);
	rCIDOWSFT2=(WinHorOffset<<16)|(WinVerOffset);

	if(CAM_CODEC_PINGPONG) {
		rCICOYSA1=CoFrameBuffer;
		rCICOYSA2=rCICOYSA1+CoDstWidth*CoDstHeight*multiplier;
		rCICOYSA3=rCICOYSA2+CoDstWidth*CoDstHeight*multiplier;
		rCICOYSA4=rCICOYSA3+CoDstWidth*CoDstHeight*multiplier;
/*		
		rCICOCBSA1=rCICOYSA1+CoDstWidth*CoDstHeight;
		rCICOCBSA2=rCICOYSA2+CoDstWidth*CoDstHeight;
		rCICOCBSA3=rCICOYSA3+CoDstWidth*CoDstHeight;
		rCICOCBSA4=rCICOYSA4+CoDstWidth*CoDstHeight;

		rCICOCRSA1=rCICOCBSA1+CoDstWidth*CoDstHeight/divisor;
		rCICOCRSA2=rCICOCBSA2+CoDstWidth*CoDstHeight/divisor;
		rCICOCRSA3=rCICOCBSA3+CoDstWidth*CoDstHeight/divisor;
		rCICOCRSA4=rCICOCBSA4+CoDstWidth*CoDstHeight/divisor;
*/		
	}
	else {
		rCICOYSA1=CoFrameBuffer;
		rCICOYSA2=rCICOYSA1;
		rCICOYSA3=rCICOYSA1;
		rCICOYSA4=rCICOYSA1;
/*		
		rCICOCBSA1=rCICOYSA1+CoDstWidth*CoDstHeight;
		rCICOCBSA2=rCICOCBSA1;
		rCICOCBSA3=rCICOCBSA1;
		rCICOCBSA4=rCICOCBSA1;

		rCICOCRSA1=rCICOCBSA1+CoDstWidth*CoDstHeight/divisor;
		rCICOCRSA2=rCICOCRSA1;
		rCICOCRSA3=rCICOCRSA1;
		rCICOCRSA4=rCICOCRSA1;
*/				
	}
	
	rCICOTRGFMT=(1<<31)|(1<<30)|(1<<29)|(CoDstWidth<<16)|(CAM_FLIP_NORMAL<<14)|(CoDstHeight);

	CalculateBurstSize(CoDstWidth, &MainBurstSizeY, &RemainedBurstSizeY);
	CalculateBurstSize(CoDstWidth/2, &MainBurstSizeC, &RemainedBurstSizeC);
	printf("main:%d, remain:%d\n", MainBurstSizeY, RemainedBurstSizeY);
	//rCICOCTRL=(MainBurstSizeY<<19)|(RemainedBurstSizeY<<14)|(MainBurstSizeC<<9)|(RemainedBurstSizeC<<4);
	rCICOCTRL=(8<<19)|(4<<14)|(4<<9)|(2<<4);

	CalculatePrescalerRatioShift(SrcWidth, CoDstWidth, &PreHorRatio, &H_Shift);
	CalculatePrescalerRatioShift(SrcHeight, CoDstHeight, &PreVerRatio, &V_Shift);
	MainHorRatio=(SrcWidth<<8)/(CoDstWidth<<H_Shift);
	MainVerRatio=(SrcHeight<<8)/(CoDstHeight<<V_Shift);
    			
	rCICOSCPRERATIO=((10-H_Shift-V_Shift)<<28)|(PreHorRatio<<16)|(PreVerRatio<<0);
	rCICOSCPREDST=((SrcWidth/PreHorRatio)<<16)|(SrcHeight/PreVerRatio); 
	rCICOSCCTRL=(CAM_SCALER_BYPASS_OFF<<31)|(ScaleUp_H_Co<<30)|(ScaleUp_V_Co<<29)|(MainHorRatio<<16)|(MainVerRatio);

	rCICOTAREA=CoDstWidth*CoDstHeight;
	
	rCIIMGCPT=(1<<26)|(0<<25)|(1<<24)|(0<<18);
	rCICOCPTSEQ=0xffffffff;
	rCICOSCOS=0x0;
	

	//clear overflow because unintentional overflow may be existed...
	rCIWDOFST|=(1<<30)|(0xf<<12);
	rCIWDOFST&=~((1<<30)|(0xf<<12));	

}



/********************************************************
 CalculateBurstSize - Calculate the busrt lengths
 
 Description:	
 - dstHSize: the number of the byte of H Size.
 
*/
void CalculateBurstSize(U32 hSize,U32 *mainBurstSize,U32 *remainedBurstSize)
{
	U32 tmp;	
	tmp=(hSize/4)%16;
	switch(tmp) {
		case 0:
			*mainBurstSize=16;
			*remainedBurstSize=16;
			break;
		case 4:
			*mainBurstSize=16;
			*remainedBurstSize=4;
			break;
		case 8:
			*mainBurstSize=16;
			*remainedBurstSize=8;
			break;
		default: 
			tmp=(hSize/4)%8;
			switch(tmp) {
				case 0:
					*mainBurstSize=8;
					*remainedBurstSize=8;
					break;
				case 4:
					*mainBurstSize=8;
					*remainedBurstSize=4;
				default:
					*mainBurstSize=4;
					tmp=(hSize/4)%4;
					*remainedBurstSize= (tmp) ? tmp: 4;
					break;
			}
			break;
	}		    	    		
}



/********************************************************
 CalculatePrescalerRatioShift - none
 
 Description:	
 - none
 
*/
void CalculatePrescalerRatioShift(U32 SrcSize, U32 DstSize, U32 *ratio,U32 *shift)
{
	if(SrcSize>=64*DstSize) {
		printf("ERROR: out of the prescaler range: SrcSize/DstSize = %d(< 64)\n",SrcSize/DstSize);
		while(1);
	}
	else if(SrcSize>=32*DstSize) {
		*ratio=32;
		*shift=5;
	}
	else if(SrcSize>=16*DstSize) {
		*ratio=16;
		*shift=4;
	}
	else if(SrcSize>=8*DstSize) {
		*ratio=8;
		*shift=3;
	}
	else if(SrcSize>=4*DstSize) {
		*ratio=4;
		*shift=2;
	}
	else if(SrcSize>=2*DstSize) {
		*ratio=2;
		*shift=1;
	}
	else {
		*ratio=1;
		*shift=0;
	}    	
}


void Test_CamCodecPreviewQVGADisplay(void)
{



	U32 mode;

	camTestMode=CAM_TEST_MODE_CODEC_POST;
	camCodecCaptureCount=0;
	camPviewCaptureCount=0;
	camPviewStatus=CAM_STOPPED;
	camCodecStatus=CAM_STOPPED;

	mode=0;

	InitLDI_LTS222();

	camCodecInput=CAM_CCIR420;
	camCodecOutput=CAM_RGB16B;


	Lcd_Port_Init();    
    Lcd_PowerEnable(0, 1);
    Lcd_Init(MODE_TFT_16BIT_240320);
    Glib_Init(MODE_TFT_16BIT_240320);    
    Glib_ClearScr(0, MODE_TFT_16BIT_240320);
    
    Lcd_EnvidOnOff(1);
    

	//Camera I/F initialization
	if(CAMTYPE==CAM_S5X532)
		CamInit(240, 320, 112, 40, 0x33800000);
	else
		CamInit(240, 320, 0, 0, 0x33800000);


	pISR_CAM=(U32)CamCodecIsr;    
	rINTMSK&=~(BIT_CAM);

	printf("Camera preview for codec will be started!\n");
	printf("Press Enter to continue!\n");
	

	if(rCICOSTATUS&0xe0000000) {
		rCIWDOFST|=(1<<30|1<<15|1<<14);
		rCIWDOFST&=~(1<<30|1<<15|1<<14);
	}
	

	CamCaptureStart(CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT);

	if(camCodecOutput==CAM_CCIR422) {
		while(1) {
			if(camCodecDataValid==1) {
				camCodecDataValid=0;
				//Display_Cam_Image(PQVGA_XSIZE, PQVGA_YSIZE);
			}	
			if(Uart_GetKey()=='\r') break;
		}
	}	
	else GetIntNum();
    
	CamCaptureStop();
    
	printf("Wait until the current frame capture is completed.\n");
    
	while(!( camCodecStatus==CAM_STOPPED));

	printf("camCodecCaptureCount:%d\n",camCodecCaptureCount);
	printf("codec Status register:0x%x\n", rCICOSTATUS);
	
	
	rINTMSK|=BIT_CAM;	
	
}



void CamPortInit(void)
{

	rGPEDN |= (0x3<<14);
	rGPECON = (rGPECON & ~(0xf<<28))|(0xa<<28);
	
	rGPJDN = 0x1fff;
	rGPJCON = 0x2aaaaaa;	
}

void CamClockInit(void)
{
	SetUPLL( 64, 7, 0);		// 96MHz UPLL
	rCLKSRC	= (rCLKSRC & ~(1<<11))|(1<<5); 	//USYSCLK = FOUTupll	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最好看的中文字幕久久| 亚洲二区在线视频| 亚洲男同性视频| 裸体一区二区三区| 成人av免费在线观看| 91精品国产综合久久精品麻豆| 久久嫩草精品久久久精品| 亚洲欧美日韩精品久久久久| 国产中文一区二区三区| 欧美日韩中文一区| 成人欧美一区二区三区视频网页| 日本不卡不码高清免费观看| 91色.com| 国产精品美女一区二区| 狠狠色丁香久久婷婷综合_中| 欧洲精品在线观看| 中文字幕一区二区三区色视频 | 国产日韩欧美麻豆| 婷婷综合在线观看| 欧美午夜在线一二页| 1024亚洲合集| 成人网页在线观看| 欧美激情一区三区| 国产一区二区在线电影| 91精品综合久久久久久| 亚洲午夜电影网| 一本色道a无线码一区v| 综合久久久久综合| 91啪在线观看| 亚洲欧美一区二区三区孕妇| 国产精华液一区二区三区| 欧美大片顶级少妇| 久久se这里有精品| 欧美电视剧免费全集观看| 日本免费新一区视频| 3atv在线一区二区三区| 五月综合激情网| 91精品国产高清一区二区三区| 亚洲国产成人精品视频| 欧美日本乱大交xxxxx| 亚洲韩国一区二区三区| 欧美精品在欧美一区二区少妇| 亚洲一区二区中文在线| 欧美日韩国产bt| 日本三级亚洲精品| 精品久久人人做人人爽| 国产一区二区三区精品视频| 国产亚洲欧洲997久久综合| 国产伦精品一区二区三区免费| 久久久久国色av免费看影院| 国产精品69毛片高清亚洲| 中国色在线观看另类| av一二三不卡影片| 亚洲一线二线三线久久久| 91精品国产91综合久久蜜臀| 国产一区二区三区最好精华液| 日本一区二区三区电影| 91视频精品在这里| 视频一区免费在线观看| 精品福利一二区| 粉嫩aⅴ一区二区三区四区五区 | 亚洲另类在线制服丝袜| 欧美性色综合网| 免费黄网站欧美| 国产精品久久久久桃色tv| 91国产免费观看| 美女www一区二区| 中文av字幕一区| 欧美福利一区二区| gogogo免费视频观看亚洲一| 亚洲一区二区三区四区在线观看 | 日韩精品一二三区| 欧美激情一区二区三区蜜桃视频 | 亚洲国产精品一区二区www在线| 欧美精品亚洲二区| 国产成人av电影在线| 亚洲一区二区不卡免费| 久久精品在这里| 欧美久久久一区| 成人黄色电影在线 | 日韩精品一区在线| 色婷婷综合久久久中文一区二区| 日本免费新一区视频| 亚洲日本一区二区三区| 538prom精品视频线放| 成人精品视频一区二区三区| 午夜精品免费在线观看| 亚洲欧美综合色| 久久久一区二区三区捆绑**| 欧美三级日本三级少妇99| 福利一区二区在线观看| 免费日韩伦理电影| 亚洲成人免费视| 亚洲欧洲日韩在线| 久久综合狠狠综合久久综合88| 欧美中文字幕久久| 91网站在线观看视频| 国产精品亚洲成人| 狠狠久久亚洲欧美| 久草精品在线观看| 免费成人在线影院| 天天免费综合色| 三级久久三级久久| 午夜伦欧美伦电影理论片| 亚洲一区二区四区蜜桃| 亚洲精品视频在线观看网站| 亚洲天天做日日做天天谢日日欢 | 日韩精品中文字幕一区二区三区| 欧美日韩亚洲另类| 日本道精品一区二区三区| 99热精品国产| 99国产精品99久久久久久| 99麻豆久久久国产精品免费| 北岛玲一区二区三区四区| 国产乱码精品一区二区三区忘忧草| 美女尤物国产一区| 美女网站在线免费欧美精品| 日韩高清在线观看| 亚洲欧洲韩国日本视频 | 欧美中文字幕不卡| 国产伦精品一区二区三区视频青涩| 国产在线视视频有精品| 九九久久精品视频| 午夜成人免费视频| 午夜欧美电影在线观看| 亚洲少妇30p| 亚洲国产乱码最新视频| 亚洲另类在线视频| 一区二区在线观看免费| 综合中文字幕亚洲| 亚洲精品亚洲人成人网在线播放| 亚洲视频1区2区| 一区二区三区免费看视频| 亚洲欧洲综合另类| 亚洲一区二区黄色| 国产自产高清不卡| 国产精品99久久久| 国产成人av电影在线| 成人app网站| 豆国产96在线|亚洲| 91福利在线播放| 欧美日韩高清一区二区不卡| 欧美精品精品一区| 337p日本欧洲亚洲大胆精品| 久久网站最新地址| 亚洲欧洲日产国码二区| 一区二区三区资源| 麻豆精品精品国产自在97香蕉| 国产一区二区三区四区在线观看| 国产成人午夜片在线观看高清观看| 欧美性生活大片视频| 欧美日韩在线电影| 国产蜜臀av在线一区二区三区| 国产精品美女久久久久高潮| 亚洲精品视频免费观看| 一区二区欧美精品| 亚洲一区二区三区四区的| 婷婷激情综合网| 日韩激情一二三区| 国产伦精一区二区三区| 91日韩精品一区| 久久久亚洲精品石原莉奈| 亚洲美女淫视频| 免费成人在线观看视频| 国产不卡在线一区| 日韩欧美国产高清| 亚洲视频一区在线| 免费观看久久久4p| 日韩一区二区免费在线观看| 国产欧美一区二区在线| 亚洲国产综合人成综合网站| 久久91精品久久久久久秒播| 99re热视频精品| 国产欧美视频在线观看| 亚洲一区日韩精品中文字幕| 国产乱子伦视频一区二区三区| 欧美亚州韩日在线看免费版国语版| 欧美一区二视频| 亚洲视频图片小说| 极品销魂美女一区二区三区| 色综合久久久久综合体桃花网| 精品对白一区国产伦| 一区二区三区成人| 国产老妇另类xxxxx| 欧美日韩一二区| 精品国产一区二区三区四区四| 婷婷综合另类小说色区| 91麻豆国产自产在线观看| 欧美精品一区二区在线播放| 国产精品剧情在线亚洲| 国产白丝网站精品污在线入口| 欧美日韩在线一区二区| 一区在线播放视频| 国产剧情一区在线| 久久久久97国产精华液好用吗| 视频一区中文字幕| 欧美日韩亚洲高清一区二区| 国产欧美日本一区视频| 丰满少妇在线播放bd日韩电影| 欧美一卡二卡在线观看|