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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ov7725.c

?? cmos傳感器芯片OV7725的linux驅(qū)動源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
    gpio_i2c_write(I2C_OV7725, 0x90, 0x05);    gpio_i2c_write(I2C_OV7725, 0x91, 0x01);    gpio_i2c_write(I2C_OV7725, 0x92, 0x03);    gpio_i2c_write(I2C_OV7725, 0x93, 0x00);    gpio_i2c_write(I2C_OV7725, 0x94, 0xb0);    gpio_i2c_write(I2C_OV7725, 0x95, 0x9d);    gpio_i2c_write(I2C_OV7725, 0x96, 0x13);    gpio_i2c_write(I2C_OV7725, 0x97, 0x16);    gpio_i2c_write(I2C_OV7725, 0x98, 0x7b);    gpio_i2c_write(I2C_OV7725, 0x99, 0x91);    gpio_i2c_write(I2C_OV7725, 0x9a, 0x1e);        gpio_i2c_write(I2C_OV7725, 0x9b, 0x00);    gpio_i2c_write(I2C_OV7725, 0x9c, 0x25);    gpio_i2c_write(I2C_OV7725, 0x9e, 0x81);        gpio_i2c_write(I2C_OV7725, 0xa6, 0x06);    //modified saturation initialization value by pw 2008-03-04    gpio_i2c_write(I2C_OV7725, 0xa7, 0x65);    gpio_i2c_write(I2C_OV7725, 0xa8, 0x65);        gpio_i2c_write(I2C_OV7725, 0x7e, 0x0c);    gpio_i2c_write(I2C_OV7725, 0x7f, 0x16);    gpio_i2c_write(I2C_OV7725, 0x80, 0x2a);    gpio_i2c_write(I2C_OV7725, 0x81, 0x4e);    gpio_i2c_write(I2C_OV7725, 0x82, 0x61);    gpio_i2c_write(I2C_OV7725, 0x83, 0x6f);    gpio_i2c_write(I2C_OV7725, 0x84, 0x7b);    gpio_i2c_write(I2C_OV7725, 0x85, 0x86);    gpio_i2c_write(I2C_OV7725, 0x86, 0x8e);        gpio_i2c_write(I2C_OV7725, 0x87, 0x97);    gpio_i2c_write(I2C_OV7725, 0x88, 0xa4);    gpio_i2c_write(I2C_OV7725, 0x89, 0xaf);    gpio_i2c_write(I2C_OV7725, 0x8a, 0xc5);    gpio_i2c_write(I2C_OV7725, 0x8b, 0xd7);    gpio_i2c_write(I2C_OV7725, 0x8c, 0xe8);    gpio_i2c_write(I2C_OV7725, 0x8d, 0x20);#if 0     gpio_i2c_write(I2C_OV7725, 0x34, 0x00);    gpio_i2c_write(I2C_OV7725, 0x33, 0x40);    gpio_i2c_write(I2C_OV7725, 0x22, 0x99);    gpio_i2c_write(I2C_OV7725, 0x23, 0x03);    gpio_i2c_write(I2C_OV7725, 0x4a, 0x10);    gpio_i2c_write(I2C_OV7725, 0x49, 0x10);    gpio_i2c_write(I2C_OV7725, 0x4b, 0x14);    gpio_i2c_write(I2C_OV7725, 0x4c, 0x17);    gpio_i2c_write(I2C_OV7725, 0x46, 0x05);    gpio_i2c_write(I2C_OV7725, 0x0e, 0x65);#endif        gpio_i2c_write(I2C_OV7725, 0x69, 0x5d);	    gpio_i2c_write(I2C_OV7725, 0x0c, 0x00);    gpio_i2c_write(I2C_OV7725, 0x33, 0xfb);//0x66/0x99    gpio_i2c_write(I2C_OV7725, 0x0e, 0x65);//sharpness strength modified by pw 2008-03-05    regvalue = gpio_sccb_read(I2C_OV7725, 0xac);    gpio_i2c_write(I2C_OV7725, 0xac, 0xdf&regvalue);    gpio_i2c_write(I2C_OV7725, 0x8f, 0x04);} }void ov7725_vga_ioctl(void){    if(powerfreq == DC_VAL_50HZ)    {    	gpio_i2c_write(I2C_OV7725, 0x2b, 0x00);    	    }    else if(powerfreq == DC_VAL_60HZ)    {    	gpio_i2c_write(I2C_OV7725, 0x2b, 0xff);    }    gpio_i2c_write(I2C_OV7725, 0x29, 0xa0);    gpio_i2c_write(I2C_OV7725, 0x2c, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x65, 0x20);}	void  ov7725_qvga_ioctl(void)   {		 	    if(powerfreq == DC_VAL_50HZ)    {    	gpio_i2c_write(I2C_OV7725, 0x2b, 0x00);    	    }    else if(powerfreq == DC_VAL_60HZ)    {    	gpio_i2c_write(I2C_OV7725, 0x2b, 0xff);    }    gpio_i2c_write(I2C_OV7725, 0x29, 0x50);    gpio_i2c_write(I2C_OV7725, 0x2c, 0x78);    gpio_i2c_write(I2C_OV7725, 0x65, 0x20);   }   void  ov7725_qqvga_ioctl(void){		 	    if(powerfreq == DC_VAL_50HZ)    {    	gpio_i2c_write(I2C_OV7725, 0x2b, 0x00);    	    }    else if(powerfreq == DC_VAL_60HZ)    {    	gpio_i2c_write(I2C_OV7725, 0x2b, 0xff);    }    gpio_i2c_write(I2C_OV7725, 0x29, 0x25);    gpio_i2c_write(I2C_OV7725, 0x2c, 0x39);    gpio_i2c_write(I2C_OV7725, 0x65, 0x20);}/* * ov7725 open routine.  * do nothing. * */ int ov7725_open(struct inode * inode, struct file * file){    return 0;}/* * ov7725 close routine.  * do nothing. * */ int ov7725_close(struct inode * inode, struct file * file){    return 0;}#define REG_DIRECT_OPR 0x8000#define is_directreg_opt(cmd) ((cmd & REG_DIRECT_OPR) == REG_DIRECT_OPR)int ov7725_ioctl_reg(unsigned int oprcmd, unsigned long arg){    void __user *argp = (void __user *)arg;    #define REG_OPR_READ_MASK  0x8000     #define REG_OPR_WRITE_MASK 0xC000    #define REG_ADDR_MASK      0x00FF        unsigned int regaddr = 0;    unsigned int regvalue = 0;        unsigned int val     = 0;                if ((oprcmd & REG_DIRECT_OPR) == 0)    {        return -1;    }        regaddr = oprcmd & REG_ADDR_MASK;        if ( (oprcmd & REG_OPR_WRITE_MASK) == REG_OPR_WRITE_MASK)/*WRITE*/    {        if (copy_from_user(&val, argp, sizeof(val)))        {             return -EFAULT;        }                gpio_i2c_write(I2C_OV7725, regaddr, val);            }    else if ( (oprcmd & REG_OPR_READ_MASK) == REG_OPR_READ_MASK)  /*READ*/    {        regvalue = gpio_sccb_read(I2C_OV7725, regaddr);        return copy_to_user(argp, &regvalue, sizeof(regvalue))?-EFAULT : 0;                }    else    {        return -1;    }    return 0;}/* * ov7725 ioctl routine.  * @param inode: pointer of the node; * @param file: pointer of the file; * * @param cmd: command from the app: * DC_MODE_SET(1):set ov7725's output format;  * DC_MODE_GET(2):get ov7725's output format; * DC_ZOOM_SET(3):set ov7725's output drive capability; * DC_ZOOM_GET(4):get ov7725's output drive capability; * DC_MIRROR_SET(5):set ov7725's mirror enable or disable; * DC_MIRROR_GET(6):get ov7725's mirror enable or disable;; * DC_NIGHTMODE_SET(7):set ov7725's night mode; * DC_NIGHTMODE_GET(8):get ov7725's night mode; * DC_SYNCMODE_SET(9):set ov7725's sync mode; * DC_SYNCMODE_GET(a):get ov7725's sync mode; *  * @param arg:arg from app layer. * * @return value:0-- set success; 1-- set error.  * */ int ov7725_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg){    void __user *argp = (void __user *)arg;    unsigned int val = 0;    unsigned int regvalue = 0;         if (is_directreg_opt(cmd))    {        return ov7725_ioctl_reg(cmd, arg);    }           if (copy_from_user(&val, argp, sizeof(val)))     {        return -EFAULT;    }    switch (cmd)    {        case DC_SET_IMAGESIZE:        {        	unsigned int imagesize = val;         	if(imagesize == DC_VAL_VGA)         	{         		 ov7725_vga_ioctl();         	}         	else if(imagesize == DC_VAL_QVGA)         	{         		 ov7725_qvga_ioctl();         	}         	else if(imagesize == DC_VAL_QQVGA)         	{         		 ov7725_qqvga_ioctl();         	}         	else         	{         		printk("imagesize_set_error.\n");         		return -1;         	}	        	break;        }                /*case DC_SET_BRIGHT:        {        	unsigned int bright = val;               	gpio_i2c_write(I2C_OV7725, 0x9b, bright);        	break;        }	 	 case DC_SET_CONTRACT:        {        	unsigned int contrast = val;               	gpio_i2c_write(I2C_OV7725, 0x9c, contrast);        	break;        }*/                case DC_SET_HUE:        {        	unsigned int hue = val,        	regvalue = gpio_sccb_read(I2C_OV7725, 0xa6);        	gpio_i2c_write(I2C_OV7725, 0xa6, regvalue|0x01);        	if(hue <0x80)        	{        		gpio_i2c_write(I2C_OV7725, 0xaa, (hue+0x80));        		gpio_i2c_write(I2C_OV7725, 0xa9, (hue+0x80));        	}        	else if(hue >= 0x80&&hue <= 0xff)        	{        		gpio_i2c_write(I2C_OV7725, 0xaa, !hue);        		gpio_i2c_write(I2C_OV7725, 0xa9, !hue);        	}        	else        	{        		printk("hue_set_error.\n");        		return -1;        	}        	break;        }                case DC_SET_SATURATION:        {        	unsigned int saturation = val;            	gpio_i2c_write(I2C_OV7725, 0xa7, saturation);            	gpio_i2c_write(I2C_OV7725, 0xa8, saturation);        	break;        }        case DC_SET_SHARPNESS:        {        	unsigned int sharpness = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0xac);            	gpio_i2c_write(I2C_OV7725, 0xac, 0xdf&regvalue);            	gpio_i2c_write(I2C_OV7725, 0x8f, sharpness);        	break;        }                case DC_SET_ADNSWITCH:        {        	unsigned int adnswitch = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0xac);        	if(adnswitch == DC_VAL_ON)        	{        		gpio_i2c_write(I2C_OV7725, 0xac, (0x40|regvalue));        	}        	else if(adnswitch == DC_VAL_OFF)        	{        		gpio_i2c_write(I2C_OV7725, 0xac, (0xbf&regvalue));        	}        	else        	{        		printk("adnswitch_set_error.\n");        		return -1;        		        	}        	break;        }        case DC_SET_DNT:        {        	unsigned int dnt = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0xac);            	gpio_i2c_write(I2C_OV7725, 0xac, 0xbf&regvalue);        	gpio_i2c_write(I2C_OV7725, 0x8e, dnt);        	break;        }	        	        case DC_SET_AWBSWITCH:        {        	unsigned int awbswitch = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0x13);        	if(awbswitch == DC_VAL_ON)        	{        		gpio_i2c_write(I2C_OV7725, 0x13, (0x02|regvalue));        	}        	else if(awbswitch == DC_VAL_OFF)        	{        		gpio_i2c_write(I2C_OV7725, 0x13, (0xfd&regvalue));        	}        	break;        }	        case DC_SET_WBR:        {        	unsigned int wbr = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0x13);        	gpio_i2c_write(I2C_OV7725, 0x13, (0xfd&regvalue));        	gpio_i2c_write(I2C_OV7725, 0x02, wbr);        	break;        }	                case DC_SET_WBB:        {        	unsigned int wbb = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0x13);        	gpio_i2c_write(I2C_OV7725, 0x13, (0xfd&regvalue));        	gpio_i2c_write(I2C_OV7725, 0x01, wbb);        	break;        }               case DC_SET_AECSWITCH:        {        	unsigned int aecswitch = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0x13);        	if(aecswitch == DC_VAL_ON)        	{        		gpio_i2c_write(I2C_OV7725, 0x13, (0x01|regvalue));        	}        	else if(aecswitch == DC_VAL_OFF)        	{        		gpio_i2c_write(I2C_OV7725, 0x13, (0xfe&regvalue));        	}        	else         	{        		printk("aecswitch_set_error.\n");        		return -1;        		        	}        	break;        }        case DC_SET_EC:        {        	unsigned int ec = val;        	if(ec >= 0x80)        	{        		gpio_i2c_write(I2C_OV7725, 0x10, 0xff);        		gpio_i2c_write(I2C_OV7725, 0x08, (ec - 0x80)*2);        	}        	else if(ec < 0x80)        	{        		gpio_i2c_write(I2C_OV7725, 0x10, 0x00);        		gpio_i2c_write(I2C_OV7725, 0x08, ec*2);        	}        	else        	{        		printk("ec_set_error.\n");        		return -1;        	}        	break;        }        		        case DC_SET_AGCSWITCH:        {        	unsigned int agcswitch = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0x13);        	if(agcswitch == DC_VAL_ON)        	{        		gpio_i2c_write(I2C_OV7725, 0x13, (0x04|regvalue));        	}        	else if(agcswitch == DC_VAL_OFF)        	{        		gpio_i2c_write(I2C_OV7725, 0x13, (0xfb&regvalue));        	}        	else         	{        		printk("agcswitch_set_error.\n");        		return -1;        		        	}        	break;        }	               case DC_SET_GC:        {        	unsigned int agc = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0x13);        	gpio_i2c_write(I2C_OV7725, 0x13, 0xfb&regvalue);        	gpio_i2c_write(I2C_OV7725, 0x00, agc);        	break;        }                  case DC_SET_ABLCSWITCH:        {        	unsigned int ablcswitch = val;        	regvalue = gpio_sccb_read(I2C_OV7725, 0x3e);        	if(ablcswitch == DC_VAL_ON)        	{        		gpio_i2c_write(I2C_OV7725, 0x3e, (0x04|regvalue));        	}        	else if(ablcswitch == DC_VAL_OFF)        	{        		gpio_i2c_write(I2C_OV7725, 0x3e, (0xfb&regvalue));        	}        	else         	{        		printk("ablcswitch_set_error.\n");        		return -1;        		        	}        	break;        }                 case DC_SET_COLOR:        {        	unsigned int color = val,precolor_u,precolor_v;        	precolor_u = gpio_sccb_read(I2C_OV7725, 0xa7);        	precolor_v = gpio_sccb_read(I2C_OV7725, 0xa8);        	regvalue = gpio_sccb_read(I2C_OV7725, 0x64);        	if(color == DC_VAL_ON)        	{        		gpio_i2c_write(I2C_OV7725, 0xa7, precolor_u);        		gpio_i2c_write(I2C_OV7725, 0xa8, precolor_v);        	}        	else if(color == DC_VAL_OFF)        	{        		gpio_i2c_write(I2C_OV7725, 0xa7, 0x00);        		gpio_i2c_write(I2C_OV7725, 0xa8, 0x00);        	}        	else        	{        		printk("color_set_error.\n");        		return -1;        		        	}        	break;        }                  case DC_SET_SCENE:        {        	unsigned int scene = val;        	if(scene == DC_VAL_OUTDOOR)        	{        		gpio_i2c_write(I2C_OV7725, 0x13, 0xfd);        		gpio_i2c_write(I2C_OV7725, 0x01, 0x5a);        		gpio_i2c_write(I2C_OV7725, 0x02, 0x5c);        		gpio_i2c_write(I2C_OV7725, 0x0e, 0x65);        		gpio_i2c_write(I2C_OV7725, 0x2d, 0x00);        		gpio_i2c_write(I2C_OV7725, 0x2e, 0x00);        		s_s32Scene = DC_VAL_OUTDOOR;        	}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自产自拍| 欧美一区二区三区在线电影| 国产一区二区三区在线观看精品| 日韩国产精品久久久久久亚洲| 亚洲欧美色综合| 亚洲精品视频在线| 亚洲精品视频在线| 亚洲高清免费视频| 亚洲风情在线资源站| 亚洲午夜免费福利视频| 午夜欧美在线一二页| 日韩在线卡一卡二| 日本在线不卡一区| 美美哒免费高清在线观看视频一区二区 | 国产激情一区二区三区四区| 国内精品在线播放| 国产suv精品一区二区883| 懂色av一区二区夜夜嗨| 成人91在线观看| 色欧美片视频在线观看| 欧美色男人天堂| 91精品国产综合久久久久久漫画| 欧美精品丝袜中出| 精品久久久久久久久久久院品网 | 日韩美女视频一区二区| 亚洲精品视频在线| 日韩精品视频网| 激情六月婷婷综合| 波多野结衣中文字幕一区二区三区 | 成人激情黄色小说| 色婷婷综合久久久久中文 | 中文字幕一区在线观看| 一区二区免费视频| 日本视频中文字幕一区二区三区| 国产一区二区伦理片| 99久久精品费精品国产一区二区 | 亚洲欧美国产77777| 亚洲国产精品久久不卡毛片| 久久福利资源站| av激情成人网| 91精品国产综合久久蜜臀| 国产日韩欧美综合在线| 亚洲精品五月天| 久久99久久99精品免视看婷婷 | www国产成人免费观看视频 深夜成人网| 久久久不卡网国产精品一区| 最近日韩中文字幕| 蜜臀av一区二区在线观看| 成人动漫一区二区三区| 欧美日韩高清一区二区三区| 久久久蜜臀国产一区二区| 亚洲欧美一区二区三区孕妇| 蜜臀久久99精品久久久久久9 | 欧美日本视频在线| 欧美高清在线一区| 丝袜a∨在线一区二区三区不卡| 国产精品一二三四五| 色婷婷综合久久久中文一区二区| 精品欧美久久久| 一区二区免费在线播放| 国产一区二区三区美女| 欧美日韩在线观看一区二区| 久久综合av免费| 性做久久久久久免费观看欧美| 国产黑丝在线一区二区三区| 欧美日韩精品一区二区| 免费看欧美美女黄的网站| 久久99在线观看| 91久久精品国产91性色tv| 久久免费视频一区| 日韩一区欧美二区| 色噜噜夜夜夜综合网| 久久美女艺术照精彩视频福利播放| 亚洲精品成人天堂一二三| 极品少妇xxxx偷拍精品少妇| 色婷婷综合视频在线观看| 亚洲国产成人在线| 精品午夜一区二区三区在线观看| 在线免费观看视频一区| 国产精品高潮久久久久无| 久草在线在线精品观看| 制服丝袜一区二区三区| 一区二区在线观看免费视频播放| 国产98色在线|日韩| 日韩美女视频一区二区在线观看| 亚洲综合色丁香婷婷六月图片| 不卡一区在线观看| 久久久99精品久久| 久久国产精品一区二区| 5月丁香婷婷综合| 亚洲国产婷婷综合在线精品| 色婷婷精品大视频在线蜜桃视频 | 久久不见久久见免费视频7| 欧美视频中文字幕| 一区二区三区中文字幕精品精品 | 中文字幕av免费专区久久| 国产在线视频一区二区三区| 日韩欧美的一区二区| 日本欧美加勒比视频| 8v天堂国产在线一区二区| 亚洲国产日韩在线一区模特 | 亚洲色图欧美偷拍| 99久久夜色精品国产网站| 国产蜜臀av在线一区二区三区| 国产麻豆日韩欧美久久| 久久在线观看免费| 国产一区二区看久久| 久久久91精品国产一区二区精品| 国产一区在线精品| 久久久久国产精品麻豆ai换脸| 九色porny丨国产精品| www日韩大片| 岛国av在线一区| 中文字幕一区免费在线观看| 99精品视频在线观看| 亚洲人成在线播放网站岛国| 91丨porny丨最新| 亚洲精品国产一区二区精华液 | 国产在线不卡视频| 日本一区二区视频在线观看| 成人免费高清视频在线观看| 亚洲欧洲无码一区二区三区| 91麻豆国产精品久久| 亚洲一卡二卡三卡四卡无卡久久| 欧美性猛交xxxx黑人交| 日韩有码一区二区三区| 久久亚洲精华国产精华液| 床上的激情91.| 亚洲美女一区二区三区| 欧美嫩在线观看| 国产在线精品一区二区| 国产精品久久久久永久免费观看 | 欧美顶级少妇做爰| 久久精品国产亚洲高清剧情介绍| 久久伊99综合婷婷久久伊| 成人精品视频一区二区三区尤物| 亚洲日本在线a| 欧美一区二区三区免费在线看 | av影院午夜一区| 亚洲永久精品大片| 日韩美女一区二区三区四区| 国产91精品免费| 亚洲一区二区三区美女| 日韩午夜激情电影| 成人av网站在线| 日韩中文字幕91| 国产精品视频线看| 欧美日韩免费一区二区三区视频 | 精品日韩一区二区三区| 成人aa视频在线观看| 性欧美大战久久久久久久久| 精品国产免费一区二区三区香蕉| 北岛玲一区二区三区四区| 天堂精品中文字幕在线| 中文字幕免费在线观看视频一区| 欧美日韩一区二区在线视频| 国产精品综合一区二区三区| 一区二区高清免费观看影视大全| 欧美电视剧在线观看完整版| av高清不卡在线| 久久er精品视频| 一区二区三区四区在线免费观看| 精品日韩av一区二区| 欧美综合亚洲图片综合区| 国产一区二区三区在线观看免费 | 成人精品在线视频观看| 爽好久久久欧美精品| 亚洲欧洲精品一区二区三区| 日韩欧美激情一区| 在线中文字幕一区二区| 国产成都精品91一区二区三| 亚洲一二三区在线观看| 国产欧美精品一区aⅴ影院| 欧美精品乱人伦久久久久久| www.日韩大片| 国产自产高清不卡| 亚洲一区二区精品视频| 中文字幕制服丝袜一区二区三区| 日韩欧美国产三级| 欧美日韩精品免费观看视频| 成人精品视频一区| 国产精品1区二区.| 麻豆成人在线观看| 亚洲二区视频在线| 亚洲女性喷水在线观看一区| 久久你懂得1024| 日韩色在线观看| 欧美顶级少妇做爰| 欧美视频一区二区三区在线观看| 成人黄色电影在线| 国产一区二区美女| 国模冰冰炮一区二区| 久久国产尿小便嘘嘘| 日韩成人午夜电影| 亚洲成人av在线电影| 樱花影视一区二区| 亚洲三级电影网站| 亚洲欧美偷拍三级| 日韩理论电影院| 国产精品国产精品国产专区不蜜 |