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

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

?? camif.c

?? 三星給予ARM920T內核的S3C2413的demo版本
?? C
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************
File Name	: camif.c
Descriptions
 -S3C24A0 camera test routines & basic libraries
History
 - July 23, 2003. Draft Version 0.0 by purnnamu
 - Janualy 15, 2004. Modifed by Boaz

Copyright (c) 2004 SAMSUNG Electronics.
# However, Anybody can use this code without our permission.  
*************************************************************/

#include <stdio.h>
#include <stdlib.h>

#include "def.h"
#include "2413addr.h"
#include "console.h"
#include "pll.h"

#include "camif.h"
#include "camproset.h"
#include "lcdlib.h"
#include "glib.h"

#define TEST_DETAIL_EN				(FALSE)

//#define	YCbCrtoR(Y,Cb,Cr)	(1000*Y + 1371*(Cr-128))/1000
//#define 	YCbCrtoG(Y,Cb,Cr)	(1000*Y - 336*(Cb-128) - 698*(Cr-128))/1000
//#define	YCbCrtoB(Y,Cb,Cr)	(1000*Y + 1732*(Cb-128))/1000


volatile U32 camTestMode;
volatile U32 camCodecCaptureCount;
volatile U32 camPviewCaptureCount;
volatile U32 camCodecStatus;
volatile U32 camPviewStatus;
volatile U32 amount;
volatile U32 cameraDone;
volatile U32 camCodecDataValid;
volatile U32 camPviewDataValid;

U32 CAMTYPE, CAMSIZE, CAMIICID;
extern U32 CAMTYPE, CAMSIZE, CAMIICID;

volatile U32 regCIPRSCPRERATIO, regCIPRSCPREDST, regCIPRSCCTRL, regCIWDOFST;
U32 camCodecInput, camCodecOutput, camPviewOutput;
U32 cscDone;





//static PPOST_CONFIG _pPostCfgIsr;

//static U32 freeBufStartAddr=NULL; 

void CalculateBurstSize(U32 dstHSize,U32 *mainBurstSize,U32 *RemainedBurstSize);
void __irq CamPviewIsr(void);
void __irq CamCodecIsr(void);


void Test_CamPreviewTestQVGADisplay(void);
void Test_CamCodecPostTestQVGADisplay(void);
void Test_CamCodecPreviewQVGADisplay(void);
void Test_CamCodecQVGADisplay(void);
void Display_Cam_Image(U32 size_x, U32 size_y);
void CamCaptureStart(U32 mode);
void CamCaptureStop(void);
void _CamPviewStopHw(void);
void _CamCodecStopHw(void);
void _CamCodecSetLastIrq(void);
void _CamPviewSetLastIrq(void);
void CamPortInit(void);
void CamClockInit(void);
U32 Conv_YCbCr_Rgb(U8 y0, U8 y1, U8 cb0, U8 cr0);




void * camera_function[][2]=
{
	(void *)Test_CamCodecPreviewQVGADisplay,				"Test_CamCodecPreview 16bpp             ",
	(void *)Camera_WriteBlock,								"IIC Write Block                        ",
	(void *)Camera_ReadBlock,								"IIC Read Block                         ",
	0,0
};

void CameraDisplayFunction(void)
{
	int i;

	i=0;	
	printf("\n\n");
	while(1)	{   //display menu
	    printf("%2d:%s",i,camera_function[i][1]);
	    i++;
	    if((int)(camera_function[i][0])==0) {
			printf("\n");
			break;
	    }
	    if((i%2)==0) printf("\n");
	}
}

void Ch22_CAMERA(void)
{
	int i;

	printf("\n----Test of Camera Interface----\n");

	CamPortInit();
	CamClockInit();

	//LCD Initializtion

	camCodecOutput=CAM_CCIR420;
	camCodecInput=CAM_CCIR420;
	camPviewOutput=CAM_RGB16B;

	printf("Select camera type\n");
	printf("0:S5X532, 1:OV7620 8bit, 2:OV7620 16bit\n");
	printf("Choose one:");
	i=GetIntNum();
	switch(i) {
		case 0:
			CAMTYPE=CAM_S5X532;
			CAMIICID=0x5a;
			break;
		case 1:
			CAMTYPE=CAM_OV7620;
			CAMIICID=0x42;
			break;
		case 2:
			CAMTYPE=CAM_OV7620_16;
			CAMIICID=0x42;
			break;			
		default:
			CAMTYPE=CAM_S5X532;
			CAMIICID=0x5a;
			break;
	}

	printf("Select camera size\n");
	printf("0:VGA,    1:1 Mega,     2:2 Mega\n");
	printf("Choose one:");
	i=GetIntNum();
	switch(i) {
		case 0:
			CAMSIZE=VGA_XSIZE;
			break;
		case 1:
			CAMSIZE=MEGA1_XSIZE;
			break;
		case 2:
			CAMSIZE=MEGA2_XSIZE;
			break;
		default:
			CAMSIZE=VGA_XSIZE;
			break;
	}

	
	rCIGCTRL|=(1<<31);
	Delay(100);
	rCIGCTRL&=~(1<<31);

	printf("Select camera clcok\n");
	printf(" 0:32Mhz,    1:24Mhz,  2:19.2Mhz,  3:16Mhz\n");
	printf(" 4:13.7Mhz, 5:12Mhz,  6:10.6Mhz,  7:9.6Mhz\n");
	printf(" 8:8.7Mhz,   9:8Mhz,  10:7.3Mhz,  11:6.8Mhz\n");
	printf("12:6.4Mhz,  13:6Mhz\n");
	printf("Choose one:");
	i=GetIntNum();
	switch(i) {
		case 0:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x2<<16);
			break;
		case 1:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x3<<16);
			break;
		case 2:	
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x4<<16);
			break;
		case 3:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x5<<16);
			break;			
		case 4:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x6<<16);
			break;			
		case 5:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x7<<16);
			break;			
		case 6:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x8<<16);
			break;			
		case 7:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0x9<<16);
			break;
		case 8:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0xa<<16);
			break;
		case 9:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0xb<<16);		
			break;
		case 10:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0xc<<16);
			break;			
		case 11:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0xd<<16);
			break;
		case 12:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0xe<<16);
			break;
		case 13:
			rCLKDIVN=(rCLKDIVN&~(0xf<<16))|(0xf<<16);		
			break;
		default:
			break;
	}
	
	CamReset();		
	CameraModuleSetting();
	Delay(10);
			
	while(1) {
		CameraDisplayFunction();
		printf("\nSelect(-1 to exit): ");
		i = GetIntNum();
		//printf("IN:%d.\n\n", i);
		if(i==-1) break;
		
		if(i>=0 && (i<(sizeof(camera_function)/8)) ) 
	    	( (void (*)(void)) (camera_function[i][0]) )();	// execute selected function.
	}

}


/******************************************************************************
 *                                                                            *    
 *                   camera interface interrupts & controls                   *
 *                                                                            *     
 ******************************************************************************/

void __irq CamCodecIsr(void)
{

	U32 completedFrameIndex;

	printf("C");
	ClearPending(BIT_CAM);
	//printf("0x%x, 0x%x\n", rCICOSTATUS&0xe0000000, rCIPRSTATUS&0xc0000000);
	switch(camCodecStatus) {
		case CAM_STOP_ISSUED:
			_CamCodecSetLastIrq();
			camCodecStatus=CAM_LASTIRQ_ISSUED;
			break;
		case CAM_LASTIRQ_ISSUED:
			_CamCodecStopHw();
			camCodecStatus=CAM_LAST_CAPTURING;
			break;			
		case CAM_LAST_CAPTURING:
			camCodecStatus=CAM_STOPPED;
			return;
		case CAM_STARTED:
			if(camTestMode&CAM_TEST_MODE_CODEC_POST)	{
				if(camCodecCaptureCount>0) {
					camCodecDataValid=1;
					//if((postProcessingDone==0) && (camCodecCaptureCount>1)) {
					//	printf("ERROR:Post not completed yet.\n");
					//}
					//completedFrameIndex=(((rCICOSTATUS>>26)&0x3)+4-2)%4;   
					//PostStartProcessing(completedFrameIndex);
				}
			}
			else {
				if(camCodecCaptureCount>0) camCodecDataValid=1;
			}
			break; 
		case CAM_CODEC_SCALER_BYPASS_STATE:
			break;
		default:
			break;
	}

    camCodecCaptureCount++;	 

}
void CamCaptureStart(U32 mode)
{ 
    
	if(mode&CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT) {
		camCodecStatus=CAM_STARTED;
		rCICOSCCTRL|=CAM_CODEC_SACLER_START_BIT;
	}
	
    
	rCIIMGCPT|=CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT|mode;
}

void CamCaptureStop(void)
{
	camCodecStatus=CAM_STOP_ISSUED;
	camPviewStatus=CAM_STOP_ISSUED;
}


void _CamCodecSetLastIrq(void)
{
	rCICOCTRL|=(1<<2); // Bit of LastIRQEn_Co is cleared automatically.  
}

void _CamCodecStopHw(void)
{
	rCICOSCCTRL&=~CAM_CODEC_SACLER_START_BIT; //stop codec scaler.
	rCIIMGCPT&=~(CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT|CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT); //stop capturing for codec scaler and global capture.
}


/******************************************************************************
 *                                                                            *    
 *                       camera interface initialization                      *
 *                                                                            *     
 ******************************************************************************/

void CamReset()
{

	//rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0x1<<8);

	switch(CAMTYPE) {
		case CAM_OV7620:
		case CAM_OV7620_16:
			rCIGCTRL|= (1<<31)|(1<<29); //camera I/F soft reset
			Delay(1);
			rCIGCTRL&= ~(1<<31);

			rCIGCTRL|=(1<<30);	//external camera reset assertion (OV7620=high active)	
			Delay(200);
			rCIGCTRL&=~(1<<30);		//external camera reset deassertion

			rCIGCTRL|=(1<<26);  // XciPCLK Polarity setting

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩嫩av羞羞动漫久久久 | 欧美大白屁股肥臀xxxxxx| 亚洲日本在线a| 91一区二区在线| 亚洲自拍与偷拍| 欧美日韩免费观看一区三区| 婷婷久久综合九色综合伊人色| 欧美日韩高清影院| 久久国产精品99久久人人澡| 日韩免费一区二区三区在线播放| 久久国产精品色婷婷| 欧美激情综合网| 一本大道久久a久久综合| 国产伦精一区二区三区| 久久久91精品国产一区二区精品 | 成人精品免费视频| 一区二区三区欧美日| 欧美精品丝袜久久久中文字幕| 日韩高清国产一区在线| 久久久国产一区二区三区四区小说| 成人精品一区二区三区中文字幕 | 777xxx欧美| 国产美女久久久久| 亚洲九九爱视频| 日韩午夜精品视频| 99国产精品视频免费观看| 亚洲国产日产av| 久久精品欧美日韩精品 | 欧美理论片在线| 丁香六月久久综合狠狠色| 一区二区三区欧美久久| 久久综合九色综合97婷婷女人| 成人av在线资源| 琪琪久久久久日韩精品| 亚洲日本中文字幕区| 欧美mv日韩mv国产网站| 色综合久久久久久久久久久| 久久99精品一区二区三区| 亚洲柠檬福利资源导航| 久久一二三国产| 欧美男生操女生| 99精品国产99久久久久久白柏| 蜜桃视频在线一区| 亚洲精品va在线观看| 久久久夜色精品亚洲| 欧美日本精品一区二区三区| 成人18视频在线播放| 久久国产精品色| 日av在线不卡| 亚洲国产精品麻豆| 1024成人网色www| 久久久亚洲欧洲日产国码αv| 3atv一区二区三区| 欧美在线你懂的| 97久久久精品综合88久久| 国产伦精品一区二区三区免费| 天堂影院一区二区| 亚洲一区二区三区三| 最新中文字幕一区二区三区| 精品91自产拍在线观看一区| 7777精品伊人久久久大香线蕉的 | 亚洲男同1069视频| 中文幕一区二区三区久久蜜桃| 亚洲一区二区黄色| 中文字幕一区二区三区色视频| 日韩视频在线一区二区| 欧美精品日韩一区| 乱中年女人伦av一区二区| 国精产品一区一区三区mba桃花| 欧美午夜不卡在线观看免费| 午夜精品福利一区二区三区av| |精品福利一区二区三区| 久久久久久夜精品精品免费| 欧美大尺度电影在线| 欧美一级电影网站| 日韩成人一区二区| 国产日韩三级在线| 国产午夜精品一区二区三区四区| 日韩欧美区一区二| 久久综合九色综合97婷婷女人| 日韩视频在线永久播放| 精品欧美乱码久久久久久| 91精品国产欧美一区二区18| 51精品国自产在线| 日韩午夜在线观看| 精品国产百合女同互慰| 久久综合久久综合久久| 久久精品一区二区三区不卡牛牛| 久久久.com| 亚洲欧美激情小说另类| 一区二区久久久久| 午夜激情久久久| 美日韩一区二区三区| 精品一区二区三区视频在线观看 | 中文字幕免费一区| 最近中文字幕一区二区三区| 亚洲精品亚洲人成人网| 亚洲成人免费在线观看| 免费欧美高清视频| 九九精品视频在线看| 国产69精品久久久久777| 91视频观看免费| 欧美日韩亚洲另类| 精品国一区二区三区| 国产精品美日韩| 亚洲综合久久av| 麻豆精品在线播放| 不卡大黄网站免费看| 色999日韩国产欧美一区二区| 3751色影院一区二区三区| 欧美国产禁国产网站cc| 亚洲综合自拍偷拍| 日本精品免费观看高清观看| 欧美一二三区精品| 国产精品进线69影院| 午夜欧美在线一二页| 国产精品99久久久久久宅男| 91电影在线观看| 久久久五月婷婷| 亚洲综合色区另类av| 国产一区二区三区综合| 欧洲日韩一区二区三区| 精品成人a区在线观看| 一区二区三区四区在线免费观看| 另类综合日韩欧美亚洲| 色综合久久久久综合| 久久你懂得1024| 亚欧色一区w666天堂| 国产成人亚洲精品青草天美| 欧美在线你懂的| 自拍偷拍欧美精品| 国产自产v一区二区三区c| 欧美午夜精品久久久久久超碰 | 日本一区中文字幕| 99国产精品99久久久久久| 欧美岛国在线观看| 亚洲国产wwwccc36天堂| 成人一区二区三区| 日韩一二在线观看| 亚洲欧美日韩国产中文在线| 国产一区二区伦理片| 3atv一区二区三区| 亚洲在线中文字幕| av激情综合网| 国产亚洲欧美色| 美女高潮久久久| 欧美日韩一区二区在线观看| 国产亚洲短视频| 韩国欧美一区二区| 日韩午夜激情视频| 日韩高清在线不卡| 91搞黄在线观看| 亚洲日本va午夜在线影院| 成人自拍视频在线观看| 久久女同互慰一区二区三区| 免费不卡在线视频| 91精选在线观看| 天天色图综合网| 欧美精品一二三| 日韩制服丝袜先锋影音| 欧亚一区二区三区| 亚洲国产日日夜夜| 欧美丝袜丝交足nylons图片| 亚洲欧美日韩国产一区二区三区| www.亚洲免费av| 综合久久一区二区三区| 99精品久久只有精品| 亚洲人成人一区二区在线观看| 不卡一区二区三区四区| 亚洲欧洲综合另类| 色综合久久久久久久久久久| 一区二区三区蜜桃| 欧美日韩一区 二区 三区 久久精品| 一区二区在线观看免费视频播放 | 成人中文字幕电影| 欧美激情一区二区在线| 国产成a人亚洲| 中文字幕一区二区三区在线不卡| 91片在线免费观看| 亚洲综合网站在线观看| 777午夜精品免费视频| 麻豆高清免费国产一区| 久久女同精品一区二区| 成人久久视频在线观看| 一区二区理论电影在线观看| 欧美人狂配大交3d怪物一区| 美女精品自拍一二三四| 中文av一区二区| 欧美日韩三级一区| 国产自产视频一区二区三区| 国产精品久久久久久久久久久免费看| 成人99免费视频| 亚洲高清免费观看 | 91麻豆精品91久久久久同性| 美女国产一区二区三区| 一区二区中文视频| 欧美精品国产精品| 国产在线看一区| 最近日韩中文字幕| 日韩一区二区三区av|