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

📄 ov3640.c

📁 君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图片解码,浏览,电子书,录音,想学ucos,识货的人就下吧 russblock fmradio explore set
💻 C
📖 第 1 页 / 共 2 页
字号:
	sensor_write_reg16(0x335f, 0x68);	sensor_write_reg16(0x3360, 0x18);	sensor_write_reg16(0x3361, 0x0c);	sensor_write_reg16(0x3362, 0x68);	sensor_write_reg16(0x3363, 0x08);	sensor_write_reg16(0x3364, 0x04);	sensor_write_reg16(0x3403, 0x42);	sensor_write_reg16(0x3088, 0x08);	sensor_write_reg16(0x3089, 0x00);	sensor_write_reg16(0x308a, 0x06);	sensor_write_reg16(0x308b, 0x00);	sensor_write_reg16(0x300e, 0x39);	sensor_write_reg16(0x300f, 0x21);	sensor_write_reg16(0x3010, 0x20);	sensor_write_reg16(0x3011, 0x00);	sensor_write_reg16(0x304c, 0x81);}void convert_to_xga(void) {	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(0x3302, 0xef);	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(0x300e, 0x32);	sensor_write_reg16(0x300f, 0x21);	sensor_write_reg16(0x3010, 0x20);	sensor_write_reg16(0x3011, 0x00);	sensor_write_reg16(0x304c, 0x82);}void return_from_jpeg(void) {}void night_mode(void) {/*	sensor_read_reg16(0x300e, &save_reg[0]);	sensor_read_reg16(0x3011, &save_reg[1]);	sensor_read_reg16(0x3010, &save_reg[2]);	sensor_read_reg16(0x302a, &save_reg[3]);	sensor_read_reg16(0x302b, &save_reg[4]);	sensor_read_reg16(0x302c, &save_reg[5]);	sensor_read_reg16(0x3014, &save_reg[6]);	sensor_read_reg16(0x302e, &save_reg[7]);	sensor_read_reg16(0x302d, &save_reg[8]);*/        save_reg[0]=sensor_read_reg16(0x300e);        save_reg[1]=sensor_read_reg16(0x3011);        save_reg[2]=sensor_read_reg16(0x3010);        save_reg[3]=sensor_read_reg16(0x302a);        save_reg[4]=sensor_read_reg16(0x302b);        save_reg[5]=sensor_read_reg16(0x302c);        save_reg[6]=sensor_read_reg16(0x3014);        save_reg[7]=sensor_read_reg16(0x302e);        save_reg[8]=sensor_read_reg16(0x302d);        save_reg[9]=sensor_read_reg16(0x3015);        sensor_write_reg16(0x300e, 0x32);        sensor_write_reg16(0x3011, 0x00);        sensor_write_reg16(0x3010, 0x20);        sensor_write_reg16(0x302a, 0x03);        sensor_write_reg16(0x302b, 0x92);//add 130 line        sensor_write_reg16(0x302c, 0x00);        sensor_write_reg16(0x3014, 0x0c);        sensor_write_reg16(0x302e, 0x00);        sensor_write_reg16(0x302d, 0x00);        sensor_write_reg16(0x3015, 0x42);}void de_night_mode(void) {        sensor_write_reg16(0x300e, save_reg[0]);        sensor_write_reg16(0x3011, save_reg[1]);        sensor_write_reg16(0x3010, save_reg[2]);        sensor_write_reg16(0x302a, save_reg[3]);        sensor_write_reg16(0x302b, save_reg[4]);        sensor_write_reg16(0x302c, save_reg[5]);        sensor_write_reg16(0x3014, save_reg[6]);        sensor_write_reg16(0x302e, save_reg[7]);        sensor_write_reg16(0x302d, save_reg[8]);        sensor_write_reg16(0x3015, save_reg[9]);}void auto_mode(void) {	sensor_write_reg16(0x332b, 0x00);//AWB auto, bit[3]:0,auto}void sunny_mode(void) {	sensor_write_reg16(0x332b, 0x08); //AWB off	sensor_write_reg16(0x33a7, 0x5e);	sensor_write_reg16(0x33a8, 0x40);	sensor_write_reg16(0x33a9, 0x46);}void cloudy_mode(void) {	sensor_write_reg16(0x332b, 0x08);	sensor_write_reg16(0x33a7, 0x68);	sensor_write_reg16(0x33a8, 0x40);	sensor_write_reg16(0x33a9, 0x4e);}void office_mode(void) {	sensor_write_reg16(0x332b, 0x08);	sensor_write_reg16(0x33a7, 0x52);	sensor_write_reg16(0x33a8, 0x40);	sensor_write_reg16(0x33a9, 0x58);}void home_mode(void) {	sensor_write_reg16(0x332b, 0x08);	sensor_write_reg16(0x33a7, 0x44);	sensor_write_reg16(0x33a8, 0x40);	sensor_write_reg16(0x33a9, 0x70);}void antique_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x18);	sensor_write_reg16(0x335a, 0x40);	sensor_write_reg16(0x335b, 0xa6);}void bluish_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x18);	sensor_write_reg16(0x335a, 0xa0);	sensor_write_reg16(0x335b, 0x40);}void greenish_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x18);	sensor_write_reg16(0x335a, 0x60);	sensor_write_reg16(0x335b, 0x60);}void reddish_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x18);	sensor_write_reg16(0x335a, 0x80);	sensor_write_reg16(0x335b, 0xc0);}void yellowish_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x18);	sensor_write_reg16(0x335a, 0x30);	sensor_write_reg16(0x335b, 0x90);}void black_white_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x18);//bit[4]fix u enable, bit[3]fix v enable	sensor_write_reg16(0x335a, 0x80);	sensor_write_reg16(0x335b, 0x80);}void negative_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x40);//bit[6] negative}void normal_mode (void) {	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x00);}/* Adjust brightness [+1 ,+7] */  //chaged by georgevoid adjust_bright ( unsigned  int level) {	char val;        val = level-4;        val *= 16;printf(" ==============  val: %d\n", val );if (val>=0)	{		sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x04); //bit[2] enable	sensor_write_reg16(0x3354, 0x01); //bit[3] sign of brightness	sensor_write_reg16(0x335e, val);}else	{	val =-val;	sensor_write_reg16(0x3302, 0xef);	sensor_write_reg16(0x3355, 0x04); //bit[2] enable	sensor_write_reg16(0x3354, 0x09); //bit[3] sign of brightness	sensor_write_reg16(0x335e, val);	}}#if 0void sensor_read (void) {	int i, val;	for (i = 0; i < sizeof(reg_list)/4; i++) {		printf("reg(0x%02x) = 0x%02x\n", reg_list[i], sensor_read_reg16(reg_list[i]));	}}#endif/* * GPIO init for ov2640 */void init_ov3640_gpio(void) {	__gpio_as_output(GPIO_CAM_PWD);	__gpio_as_output(GPIO_CAM_RST);	__gpio_clear_pin(GPIO_CAM_PWD);	mdelay(100);//	__gpio_set_pin(GPIO_CAM_RST);	__gpio_clear_pin(GPIO_CAM_RST);	mdelay(100);	__gpio_set_pin(GPIO_CAM_RST);	mdelay(100);}void output_jpeg(int mode) {	switch (mode) {	case 1:		convert_to_xga();		break;	case 0:	default:		convert_to_qxga();		break;	}	convert_to_jpeg();}void output_yuv(void) {	init_ov3640_vga();}/* * Sensor Init Routine */int init_sensor(img_param_t *img){	init_ov3640_gpio();	sensor_set_addr(0x78);	sensor_set_clk(10000);	mdelay(10);	if (img->in_width == 320 && img->in_height == 240) {		init_ov3640_qvga();		return 0;	}	if (img->in_width == 640 && img->in_height == 480) {		init_ov3640_vga();		return 0;	}	printf("ERROR: input size don't support width = %d, height = %d\n", img->in_width, img->in_height);	return 1;}#endif

⌨️ 快捷键说明

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