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

📄 ov7725.c

📁 ov7725寄存器配置
💻 C
📖 第 1 页 / 共 3 页
字号:
/*   extdrv/peripheral/dc/ov7725.c * * * Copyright (c) 2006 Hisilicon Co., Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. * * * History: *     04-Apr-2006 create this file * */#include <linux/string.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/config.h>#include <linux/errno.h>#include <linux/miscdevice.h>#include <linux/fcntl.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/proc_fs.h>#include <linux/workqueue.h>#include <asm/uaccess.h>#include <asm/system.h>#include <asm/io.h>#include "ov7725.h"#include "gpio_i2c.h"static int out_mode = 1;static struct  timer_list cycle_timer;static int s_s32Scene = DC_VAL_INDOOR;static int powerfreq = DC_VAL_50HZ;/* ov7725 i2c slaver address micro-definition. */#define I2C_OV7725     0x42#define DC_COM7 0x12#define DC_PIDH 0x0A#define DC_PIDL 0x0B#define PIDH 0x77#define PIDL 0x21static void delay(int us){       int i,j;        for(i=0;i<5*us;i++)        {for ( j=0;j<47;j++) {;}}} #define  HW_REG(reg)  *((volatile unsigned int *) reg)           #define GPIO_BASE_DIR IO_ADDRESS(0x101e6400)#define GPIO_BASE_REG IO_ADDRESS(0x101e6040)static void rst_ov7725(void){unsigned int     regvaluee;                                       regvaluee = HW_REG (GPIO_BASE_DIR);                 regvaluee |= 0x10;                 HW_REG (GPIO_BASE_DIR) = regvaluee;                                 HW_REG (GPIO_BASE_REG) = 0x10;                 delay(1);                 HW_REG (GPIO_BASE_REG) = 0;                 delay(20);                 HW_REG (GPIO_BASE_REG) = 0x10;                 printk(" rst ov7725 is ok \n");              }/*  *  ov7725's mirror image get routine. * *  @return value: ov7725's mirror image enable or disable * */static unsigned int dc_mirror_get(void){    unsigned int regvalue,reg_mirror = DC_VAL_OFF;    regvalue = gpio_sccb_read(I2C_OV7725, 0x0c);      if( (regvalue & 0x40) == 0x00)    {           reg_mirror = DC_VAL_ON;    }    else if((regvalue & 0x40) == 0x40)    {    	reg_mirror = DC_VAL_OFF;    }       return reg_mirror;      }/*  *  ov7725's mirror image get routine. * *  @return value: ov7725's mirror image enable or disable * */static unsigned int dc_flip_get(void){    unsigned int regvalue,reg_flip = DC_VAL_OFF;    regvalue = gpio_sccb_read(I2C_OV7725, 0x0c);      if( (regvalue&0x80) == 0)    {           reg_flip = DC_VAL_ON;    }    else if((regvalue & 0x80) == 0x80)    {        reg_flip = DC_VAL_OFF;    }       return reg_flip;      }/* *  registers initialise for  ov7725's  YCbCr output routine.  *  YCbCr output 640*480 *  fps =30 * */void ov7725_vga_init(void){         unsigned int regvalue = 0;    if(powerfreq == DC_VAL_50HZ)    {    gpio_i2c_write(I2C_OV7725, 0x12, 0x80);           gpio_i2c_write(I2C_OV7725, 0x3d, 0x03);       gpio_i2c_write(I2C_OV7725, 0x17, 0x22);    gpio_i2c_write(I2C_OV7725, 0x18, 0xa4);    gpio_i2c_write(I2C_OV7725, 0x19, 0x07);    gpio_i2c_write(I2C_OV7725, 0x1a, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x32, 0x00);    gpio_i2c_write(I2C_OV7725, 0x29, 0xa0);    gpio_i2c_write(I2C_OV7725, 0x2c, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x2a, 0x00);    gpio_i2c_write(I2C_OV7725, 0x11, 0x01);//00/01/03/07 for 60/30/15/7.5fps        gpio_i2c_write(I2C_OV7725, 0x42, 0x7f);    gpio_i2c_write(I2C_OV7725, 0x4d, 0x09);    gpio_i2c_write(I2C_OV7725, 0x63, 0xe0);    gpio_i2c_write(I2C_OV7725, 0x64, 0xff);    gpio_i2c_write(I2C_OV7725, 0x65, 0x20);    gpio_i2c_write(I2C_OV7725, 0x66, 0x00);    gpio_i2c_write(I2C_OV7725, 0x67, 0x48);            gpio_i2c_write(I2C_OV7725, 0x13, 0xf0);        gpio_i2c_write(I2C_OV7725, 0x0d, 0x41);//0x51/0x61/0x71 for different AEC/AGC window    gpio_i2c_write(I2C_OV7725, 0x0f, 0xc5);    gpio_i2c_write(I2C_OV7725, 0x14, 0x11);//0x81    gpio_i2c_write(I2C_OV7725, 0x22, 0x7f);//ff/7f/3f/1f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x23, 0x03);//01/03/07/0f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x24, 0x50);//0x80    gpio_i2c_write(I2C_OV7725, 0x25, 0x30);//5a    gpio_i2c_write(I2C_OV7725, 0x26, 0xa1);//c1    gpio_i2c_write(I2C_OV7725, 0x2b, 0x00);//ff    gpio_i2c_write(I2C_OV7725, 0x6b, 0xaa);    gpio_i2c_write(I2C_OV7725, 0x13, 0xff);        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, 0x5f);//b0    gpio_i2c_write(I2C_OV7725, 0x95, 0x53);//9d    gpio_i2c_write(I2C_OV7725, 0x96, 0x11);//13    gpio_i2c_write(I2C_OV7725, 0x97, 0x1a);//16    gpio_i2c_write(I2C_OV7725, 0x98, 0x3d);//7b    gpio_i2c_write(I2C_OV7725, 0x99, 0x5a);//91    gpio_i2c_write(I2C_OV7725, 0x9a, 0x1e);//1e     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);//0x66/0x99    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, 0xb2);//0x66/0x99    gpio_i2c_write(I2C_OV7725, 0x0e, 0x65);    gpio_i2c_write(I2C_OV7725, 0x13, 0xff); //Enable banding Filter    gpio_i2c_write(I2C_OV7725, 0x22, 0xab); //Banding Filter Minimum AEC Value    gpio_i2c_write(I2C_OV7725, 0x23, 0x03); //Banding Filter Step//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);    }    if(powerfreq == DC_VAL_60HZ)    {    gpio_i2c_write(I2C_OV7725, 0x12, 0x80);           gpio_i2c_write(I2C_OV7725, 0x3d, 0x03);       gpio_i2c_write(I2C_OV7725, 0x17, 0x22);    gpio_i2c_write(I2C_OV7725, 0x18, 0xa4);    gpio_i2c_write(I2C_OV7725, 0x19, 0x07);    gpio_i2c_write(I2C_OV7725, 0x1a, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x32, 0x00);    gpio_i2c_write(I2C_OV7725, 0x29, 0xa0);    gpio_i2c_write(I2C_OV7725, 0x2c, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x2a, 0x00);    gpio_i2c_write(I2C_OV7725, 0x11, 0x01);//00/01/03/07 for 60/30/15/7.5fps        gpio_i2c_write(I2C_OV7725, 0x42, 0x7f);    gpio_i2c_write(I2C_OV7725, 0x4d, 0x09);    gpio_i2c_write(I2C_OV7725, 0x63, 0xe0);    gpio_i2c_write(I2C_OV7725, 0x64, 0xff);    gpio_i2c_write(I2C_OV7725, 0x65, 0x20);    gpio_i2c_write(I2C_OV7725, 0x66, 0x00);    gpio_i2c_write(I2C_OV7725, 0x67, 0x48);            gpio_i2c_write(I2C_OV7725, 0x13, 0xf0);        gpio_i2c_write(I2C_OV7725, 0x0d, 0x41);//0x51/0x61/0x71 for different AEC/AGC window    gpio_i2c_write(I2C_OV7725, 0x0f, 0xc5);    gpio_i2c_write(I2C_OV7725, 0x14, 0x11);//0x81    gpio_i2c_write(I2C_OV7725, 0x22, 0x7f);//ff/7f/3f/1f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x23, 0x03);//01/03/07/0f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x24, 0x50);//0x80    gpio_i2c_write(I2C_OV7725, 0x25, 0x30);//5a    gpio_i2c_write(I2C_OV7725, 0x26, 0xa1);//c1    gpio_i2c_write(I2C_OV7725, 0x2b, 0x00);//ff    gpio_i2c_write(I2C_OV7725, 0x6b, 0xaa);    gpio_i2c_write(I2C_OV7725, 0x13, 0xff);        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);//0x66/0x99    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, 0x3f);//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_qvga_init(void){    unsigned int regvalue = 0;    if(powerfreq == DC_VAL_50HZ)    {	    gpio_i2c_write(I2C_OV7725, 0x12, 0x80);  		    gpio_i2c_write(I2C_OV7725, 0x3d, 0x03);       gpio_i2c_write(I2C_OV7725, 0x17, 0x22);    gpio_i2c_write(I2C_OV7725, 0x18, 0xa4);        gpio_i2c_write(I2C_OV7725, 0x19, 0x07);    gpio_i2c_write(I2C_OV7725, 0x1a, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x32, 0x00);    gpio_i2c_write(I2C_OV7725, 0x29, 0x50);    gpio_i2c_write(I2C_OV7725, 0x2c, 0x78);    gpio_i2c_write(I2C_OV7725, 0x2a, 0x00);    gpio_i2c_write(I2C_OV7725, 0x11, 0x01);//00/01/03/07 for 60/30/15/7.5fps        gpio_i2c_write(I2C_OV7725, 0x42, 0x7f);    gpio_i2c_write(I2C_OV7725, 0x4d, 0x09);    gpio_i2c_write(I2C_OV7725, 0x63, 0xe0);    gpio_i2c_write(I2C_OV7725, 0x64, 0xff);    gpio_i2c_write(I2C_OV7725, 0x65, 0x2f);       gpio_i2c_write(I2C_OV7725, 0x66, 0x00);        gpio_i2c_write(I2C_OV7725, 0x67, 0x48);        gpio_i2c_write(I2C_OV7725, 0x13, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x0d, 0x41);    gpio_i2c_write(I2C_OV7725, 0x0f, 0xc5);    gpio_i2c_write(I2C_OV7725, 0x14, 0x11);    gpio_i2c_write(I2C_OV7725, 0x22, 0x7f);//ff/7f/3f/1f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x23, 0x03);//01/03/07/0f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x24, 0x50);    gpio_i2c_write(I2C_OV7725, 0x25, 0x30);    gpio_i2c_write(I2C_OV7725, 0x26, 0xa1);    gpio_i2c_write(I2C_OV7725, 0x6b, 0xaa);    gpio_i2c_write(I2C_OV7725, 0x13, 0xff);        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, 0x5f);//b0    gpio_i2c_write(I2C_OV7725, 0x95, 0x53);//9d    gpio_i2c_write(I2C_OV7725, 0x96, 0x11);//13    gpio_i2c_write(I2C_OV7725, 0x97, 0x1a);//16    gpio_i2c_write(I2C_OV7725, 0x98, 0x3d);//7b    gpio_i2c_write(I2C_OV7725, 0x99, 0x5a);//91    gpio_i2c_write(I2C_OV7725, 0x9a, 0x1e);//1e     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, 0x49);//0x66/0x99    gpio_i2c_write(I2C_OV7725, 0x34, 0x01);//0x66/0x99    gpio_i2c_write(I2C_OV7725, 0x0e, 0x65);    gpio_i2c_write(I2C_OV7725, 0x13, 0xff); //Enable banding Filter//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);}if(powerfreq == DC_VAL_60HZ) { gpio_i2c_write(I2C_OV7725, 0x12, 0x80);  		    gpio_i2c_write(I2C_OV7725, 0x3d, 0x03);       gpio_i2c_write(I2C_OV7725, 0x17, 0x22);    gpio_i2c_write(I2C_OV7725, 0x18, 0xa4);        gpio_i2c_write(I2C_OV7725, 0x19, 0x07);    gpio_i2c_write(I2C_OV7725, 0x1a, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x32, 0x00);    gpio_i2c_write(I2C_OV7725, 0x29, 0x50);    gpio_i2c_write(I2C_OV7725, 0x2c, 0x78);    gpio_i2c_write(I2C_OV7725, 0x2a, 0x00);    gpio_i2c_write(I2C_OV7725, 0x11, 0x01);//00/01/03/07 for 60/30/15/7.5fps        gpio_i2c_write(I2C_OV7725, 0x42, 0x7f);    gpio_i2c_write(I2C_OV7725, 0x4d, 0x09);    gpio_i2c_write(I2C_OV7725, 0x63, 0xe0);    gpio_i2c_write(I2C_OV7725, 0x64, 0xff);    gpio_i2c_write(I2C_OV7725, 0x65, 0x2f);       gpio_i2c_write(I2C_OV7725, 0x66, 0x00);        gpio_i2c_write(I2C_OV7725, 0x67, 0x48);        gpio_i2c_write(I2C_OV7725, 0x13, 0xf0);    gpio_i2c_write(I2C_OV7725, 0x0d, 0x41);    gpio_i2c_write(I2C_OV7725, 0x0f, 0xc5);    gpio_i2c_write(I2C_OV7725, 0x14, 0x11);    gpio_i2c_write(I2C_OV7725, 0x22, 0x7f);//ff/7f/3f/1f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x23, 0x03);//01/03/07/0f for 60/30/15/7.5fps    gpio_i2c_write(I2C_OV7725, 0x24, 0x50);    gpio_i2c_write(I2C_OV7725, 0x25, 0x30);    gpio_i2c_write(I2C_OV7725, 0x26, 0xa1);    gpio_i2c_write(I2C_OV7725, 0x6b, 0xaa);    gpio_i2c_write(I2C_OV7725, 0x13, 0xff);    

⌨️ 快捷键说明

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