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

📄 ov3640.c

📁 君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图片解码,浏览,电子书,录音,想学ucos,识货的人就下吧 russblock fmradio explore set
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * OV3640 CMOS Camera Sensor Initialization */#if CAMERATYPE == 2#define GPIO_CAM_RST (32*3+20) //camera reset: GPD20 s800+#define GPIO_CAM_PWD (32*2+27) //camera power down:GPC27 s800+#include "camera.h"#include <jz4740.h>static char save_reg[10];void init_ov3640_vga(void) {	sensor_write_reg16(0x304d, 0x45);	sensor_write_reg16(0x3087, 0x16);	sensor_write_reg16(0x30aa, 0x45);	sensor_write_reg16(0x30b0, 0xff);	sensor_write_reg16(0x30b1, 0xff);	sensor_write_reg16(0x30b2, 0x10);	sensor_write_reg16(0x300e, 0x32);	sensor_write_reg16(0x300f, 0x21);	sensor_write_reg16(0x3010, 0x20);	sensor_write_reg16(0x3011, 0x00);	sensor_write_reg16(0x304c, 0x82);	sensor_write_reg16(0x3018, 0x38);	sensor_write_reg16(0x3019, 0x30);	sensor_write_reg16(0x301a, 0x61);	sensor_write_reg16(0x307d, 0x00);	sensor_write_reg16(0x3087, 0x02);	sensor_write_reg16(0x3082, 0x20);	sensor_write_reg16(0x3015, 0x12);	sensor_write_reg16(0x3014, 0x04);	sensor_write_reg16(0x3013, 0xf7);	sensor_write_reg16(0x303c, 0x08);	sensor_write_reg16(0x303d, 0x18);	sensor_write_reg16(0x303e, 0x06);	sensor_write_reg16(0x303f, 0x0c);	sensor_write_reg16(0x3030, 0x62);	sensor_write_reg16(0x3031, 0x26);	sensor_write_reg16(0x3032, 0xe6);	sensor_write_reg16(0x3033, 0x6e);	sensor_write_reg16(0x3034, 0xea);	sensor_write_reg16(0x3035, 0xae);	sensor_write_reg16(0x3036, 0xa6);	sensor_write_reg16(0x3037, 0x6a);	sensor_write_reg16(0x3104, 0x02);	sensor_write_reg16(0x3105, 0xfd);	sensor_write_reg16(0x3106, 0x00);	sensor_write_reg16(0x3107, 0xff);	sensor_write_reg16(0x3300, 0x12);	sensor_write_reg16(0x3301, 0xde);	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3316, 0xff);	sensor_write_reg16(0x3317, 0x00);	sensor_write_reg16(0x3308, 0xa5);	sensor_write_reg16(0x3312, 0x26);	sensor_write_reg16(0x3314, 0x42);	sensor_write_reg16(0x3313, 0x2b);	sensor_write_reg16(0x3315, 0x42);	sensor_write_reg16(0x3310, 0xd0);	sensor_write_reg16(0x3311, 0xbd);	sensor_write_reg16(0x330c, 0x18);	sensor_write_reg16(0x330d, 0x18);	sensor_write_reg16(0x330e, 0x56);	sensor_write_reg16(0x330f, 0x5c);	sensor_write_reg16(0x330b, 0x1c);	sensor_write_reg16(0x3306, 0x5c);	sensor_write_reg16(0x3307, 0x11);	sensor_write_reg16(0x336a, 0x52);	sensor_write_reg16(0x3370, 0x46);	sensor_write_reg16(0x3376, 0x38);	sensor_write_reg16(0x30b8, 0x20);	sensor_write_reg16(0x30b9, 0x17);	sensor_write_reg16(0x30ba, 0x04);	sensor_write_reg16(0x30bb, 0x08);	sensor_write_reg16(0x3507, 0x06);	sensor_write_reg16(0x350a, 0x4f);	sensor_write_reg16(0x3100, 0x02);	sensor_write_reg16(0x3301, 0xde);	sensor_write_reg16(0x3304, 0xfc);	sensor_write_reg16(0x3400, 0x00);	sensor_write_reg16(0x3404, 0x00);//	sensor_write_reg16(0x3404, 0x02);	sensor_write_reg16(0x3012, 0x10);	sensor_write_reg16(0x3023, 0x06);	sensor_write_reg16(0x3026, 0x03);	sensor_write_reg16(0x3027, 0x04);	sensor_write_reg16(0x302a, 0x03);	sensor_write_reg16(0x302b, 0x10);	sensor_write_reg16(0x3075, 0x24);	sensor_write_reg16(0x300d, 0x01);	sensor_write_reg16(0x30d7, 0x90);	sensor_write_reg16(0x3069, 0x04);	sensor_write_reg16(0x303e, 0x00);	sensor_write_reg16(0x303f, 0xc0);	sensor_write_reg16(0x335f, 0x34);	sensor_write_reg16(0x3360, 0x0c);	sensor_write_reg16(0x3361, 0x04);	sensor_write_reg16(0x3362, 0x34);	sensor_write_reg16(0x3363, 0x08);	sensor_write_reg16(0x3364, 0x04);	sensor_write_reg16(0x3403, 0x42);	sensor_write_reg16(0x3088, 0x04);	sensor_write_reg16(0x3089, 0x00);	sensor_write_reg16(0x308a, 0x03);	sensor_write_reg16(0x308b, 0x00);	sensor_write_reg16(0x308d, 0x04);	sensor_write_reg16(0x3086, 0x03);	sensor_write_reg16(0x3086, 0x00);	sensor_write_reg16(0x3600, 0xc0);	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x335f, 0x34);	sensor_write_reg16(0x3360, 0x0c);	sensor_write_reg16(0x3361, 0x04);	sensor_write_reg16(0x3362, 0x12);	sensor_write_reg16(0x3363, 0x88);	sensor_write_reg16(0x3364, 0xe4);	sensor_write_reg16(0x3403, 0x42);	sensor_write_reg16(0x3088, 0x12);	sensor_write_reg16(0x3089, 0x80);	sensor_write_reg16(0x308a, 0x01);	sensor_write_reg16(0x308b, 0xe0);	sensor_write_reg16(0x304c, 0x83);}	void init_ov3640_qvga(void) {	sensor_write_reg16(0x3012, 0x80);//qvga -yuv	mdelay(50);	sensor_write_reg16(0x304d, 0x45);//qvga -yuv	sensor_write_reg16(0x3087, 0x16);	sensor_write_reg16(0x30aa, 0x45);	sensor_write_reg16(0x30b0, 0xff);	sensor_write_reg16(0x30b1, 0xff);	sensor_write_reg16(0x30b2, 0x10);	sensor_write_reg16(0x300e, 0x32);	sensor_write_reg16(0x300f, 0x21);	sensor_write_reg16(0x3010, 0x20);	sensor_write_reg16(0x3011, 0x00);	sensor_write_reg16(0x304c, 0x85);	sensor_write_reg16(0x3018, 0x38);	sensor_write_reg16(0x3019, 0x30);	sensor_write_reg16(0x301a, 0x61);	sensor_write_reg16(0x307d, 0x00);	sensor_write_reg16(0x3087, 0x02);	sensor_write_reg16(0x3082, 0x20);	sensor_write_reg16(0x3015, 0x12);	sensor_write_reg16(0x3014, 0x04);	sensor_write_reg16(0x3013, 0xf7);	sensor_write_reg16(0x303c, 0x08);	sensor_write_reg16(0x303d, 0x18);	sensor_write_reg16(0x303e, 0x06);	sensor_write_reg16(0x303F, 0x0c);	sensor_write_reg16(0x3030, 0x62);	sensor_write_reg16(0x3031, 0x26);	sensor_write_reg16(0x3032, 0xe6);	sensor_write_reg16(0x3033, 0x6e);	sensor_write_reg16(0x3034, 0xea);	sensor_write_reg16(0x3035, 0xae);	sensor_write_reg16(0x3036, 0xa6);	sensor_write_reg16(0x3037, 0x6a);	sensor_write_reg16(0x3104, 0x02);	sensor_write_reg16(0x3105, 0xfd);	sensor_write_reg16(0x3106, 0x00);	sensor_write_reg16(0x3107, 0xff);	sensor_write_reg16(0x3300, 0x12);	sensor_write_reg16(0x3301, 0xde);	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3316, 0xff);	sensor_write_reg16(0x3317, 0x00);	sensor_write_reg16(0x3308, 0xa5);	sensor_write_reg16(0x3312, 0x26);	sensor_write_reg16(0x3314, 0x42);	sensor_write_reg16(0x3313, 0x2b);	sensor_write_reg16(0x3315, 0x42);	sensor_write_reg16(0x3310, 0xd0);	sensor_write_reg16(0x3311, 0xbd);	sensor_write_reg16(0x330c, 0x18);	sensor_write_reg16(0x330d, 0x18);	sensor_write_reg16(0x330e, 0x56);	sensor_write_reg16(0x330f, 0x5c);	sensor_write_reg16(0x330b, 0x1c);	sensor_write_reg16(0x3306, 0x5c);	sensor_write_reg16(0x3307, 0x11);	sensor_write_reg16(0x336a, 0x52);	sensor_write_reg16(0x3370, 0x46);	sensor_write_reg16(0x3376, 0x38);	sensor_write_reg16(0x30b8, 0x20);	sensor_write_reg16(0x30b9, 0x17);	sensor_write_reg16(0x30ba, 0x04);	sensor_write_reg16(0x30bb, 0x08);	sensor_write_reg16(0x3100, 0x02);	sensor_write_reg16(0x3301, 0xde);	sensor_write_reg16(0x3304, 0xfc);	sensor_write_reg16(0x3400, 0x00);	sensor_write_reg16(0x3404, 0x00);	sensor_write_reg16(0x3012, 0x10);	sensor_write_reg16(0x3023, 0x06);	sensor_write_reg16(0x3026, 0x03);	sensor_write_reg16(0x3027, 0x04);	sensor_write_reg16(0x302a, 0x03);	sensor_write_reg16(0x302b, 0x10);	sensor_write_reg16(0x3075, 0x24);	sensor_write_reg16(0x300d, 0x01);	sensor_write_reg16(0x30d7, 0x90);	sensor_write_reg16(0x3069, 0x04);	sensor_write_reg16(0x303e, 0x00);	sensor_write_reg16(0x303f, 0xc0);	sensor_write_reg16(0x335f, 0x34);	sensor_write_reg16(0x3360, 0x0c);	sensor_write_reg16(0x3361, 0x04);	sensor_write_reg16(0x3362, 0x01);	sensor_write_reg16(0x3363, 0x48);	sensor_write_reg16(0x3364, 0xf4);	sensor_write_reg16(0x3403, 0x42);	sensor_write_reg16(0x3088, 0x01);	sensor_write_reg16(0x3089, 0x40);	sensor_write_reg16(0x308a, 0x00);	sensor_write_reg16(0x308b, 0xf0);	sensor_write_reg16(0x3600, 0xc0);#if 0		sensor_write_reg16(0x3100, 0x02);//transform to rgb565	sensor_write_reg16(0x3301, 0xde);	sensor_write_reg16(0x3304, 0xfc);	sensor_write_reg16(0x3400, 0x01);	sensor_write_reg16(0x3404, 0x11);	sensor_write_reg16(0x3600, 0xc0);#endif}/* QVGA when SVGA mode */void convert_to_jpeg(void) {//	sensor_write_reg16(0x3404, 0x00);	sensor_write_reg16(0x3100, 0x32);	sensor_write_reg16(0x3304, 0xfc);	sensor_write_reg16(0x3400, 0x02);	sensor_write_reg16(0x3404, 0x22);	sensor_write_reg16(0x3500, 0x00);	sensor_write_reg16(0x3600, 0x42);//Vsync mode2 select	sensor_write_reg16(0x3610, 0x00);	sensor_write_reg16(0x3611, 0x20);//fixed width 1024 pclk	sensor_write_reg16(0x3507, 0x04);// QScale	sensor_write_reg16(0x350a, 0x4f);	sensor_write_reg16(0x304c, 0x82);}void convert_to_qxga(void) {	sensor_write_reg16(0x3012, 0x00);	sensor_write_reg16(0x3020, 0x01);	sensor_write_reg16(0x3021, 0x1d);	sensor_write_reg16(0x3022, 0x00);	sensor_write_reg16(0x3023, 0x0a);	sensor_write_reg16(0x3024, 0x08);	sensor_write_reg16(0x3025, 0x18);	sensor_write_reg16(0x3026, 0x06);	sensor_write_reg16(0x3027, 0x0c);	sensor_write_reg16(0x302a, 0x06);	sensor_write_reg16(0x302b, 0x20);	sensor_write_reg16(0x3075, 0x44);	sensor_write_reg16(0x300d, 0x00);	sensor_write_reg16(0x30d7, 0x10);	sensor_write_reg16(0x3069, 0x40);	sensor_write_reg16(0x303e, 0x01);	sensor_write_reg16(0x303f, 0x80);	sensor_write_reg16(0x3302, 0xcf);

⌨️ 快捷键说明

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