Esempio n. 1
0
void arducam_OV5642_set_jpeg_size(jpeg_size_t size)
{
#if defined OV5642_CAM

	arducam_i2c_write_word_regs(ov5642_dvp_fmt_global_init); 
	delay(100); 
	switch(size)
	{
		case OV5642_320x240:	
			arducam_i2c_write_word_regs(ov5642_dvp_fmt_jpeg_qvga);

			break;
		case OV5642_640x480:	
			arducam_i2c_write_word_regs(ov5642_dvp_fmt_jpeg_vga);

			break;
//		case OV5642_1280x720:
//			
//			arducam_i2c_write_word_regs(ov5642_dvp_fmt_jpeg_qvga);
//			arducam_i2c_write_word_regs(ov5642_res_720P);
//
//			break;
		case OV5642_1920x1080:
			  arducam_i2c_write_word_regs(OV5642_1080P_Video_setting);
		    arducam_i2c_write_word_regs(ov5642_dvp_fmt_jpeg_qvga);
			break;
		case OV5642_2048x1536:
			arducam_i2c_write_word_regs(ov5642_dvp_fmt_jpeg_qxga);
		  arducam_i2c_word_write(0x3818, 0xA8); 
			arducam_i2c_word_write(0x3621, 0x10); 
			arducam_i2c_word_write(0x3801 , 0xC8);
			
			break;
		case OV5642_2592x1944:
			arducam_i2c_write_word_regs(ov5642_dvp_fmt_jpeg_5M);
      arducam_i2c_word_write(0x4407,0x08); 
			arducam_i2c_word_write(0x3818, 0xA8); 
			arducam_i2c_word_write(0x3621, 0x10); 
			arducam_i2c_word_write(0x3801 , 0xC8);
			break;
		default:
			arducam_i2c_write_word_regs(ov5642_dvp_fmt_jpeg_qvga);
			break;
	}

	#endif

}
Esempio n. 2
0
void arducam_init()
{
	switch(myCAM.sensor_model) {
#ifdef OV7660_CAM
		case smOV7660:
		{
			arducam_i2c_write(0x12, 0x80);
			arducam_delay_ms(100);
			(void) arducam_i2c_write_regs(OV7660_QVGA);
			break;
		}
#endif

#ifdef OV7725_CAM
		case smOV7725:
		{
			uint8_t reg_val;
			arducam_i2c_write(0x12, 0x80);
			arducam_delay_ms(100);
			(void) arducam_i2c_write_regs(OV7725_QVGA);
			arducam_i2c_read(0x15,&reg_val);
			arducam_i2c_write(0x15, (reg_val | 0x02));
			break;
		}
#endif

#ifdef OV7670_CAM
		case smOV7670:
		{
			arducam_i2c_write(0x12, 0x80);
			arducam_delay_ms(100);
			(void) arducam_i2c_write_regs(OV7670_QVGA);
			break;
		}
#endif

#ifdef OV7675_CAM
		case smOV7675:
		{
			arducam_i2c_write(0x12, 0x80);
			arducam_delay_ms(100);
			(void) arducam_i2c_write_regs(OV7675_QVGA);
			break;
		}
#endif

#ifdef MT9D111_CAM
		case smMT9D111:
		{
			//arducam_i2c_write_regs16(MT9D111_QVGA_3fps);
			arducam_i2c_write_regs16(MT9D111_QVGA_15fps);
			//arducam_i2c_write_regs16(MT9D111_QVGA_30fps);
			arducam_delay_ms(1000);
			arducam_i2c_write16(0x97, 0x0020);
			arducam_i2c_write16(0xf0, 0x00);
			arducam_i2c_write16(0x21, 0x8403); //Mirror Column
			arducam_i2c_write16(0xC6, 0xA103);//SEQ_CMD
        	arducam_i2c_write16(0xC8, 0x0005); //SEQ_CMD
			break;
		}
#endif

#ifdef OV5642_CAM
		case smOV5642:
		{
			uint8_t reg_val;
			arducam_i2c_word_write(0x3008, 0x80);

			arducam_delay_ms(100);
			if(myCAM.m_fmt == fmtJPEG)
			{
				arducam_i2c_write_word_regs(OV5642_1080P_Video_setting);
				arducam_i2c_word_read(0x3818,&reg_val);
				arducam_i2c_word_write(0x3818, (reg_val | 0x20) & 0xBf);
				arducam_i2c_word_read(0x3621,&reg_val);
				arducam_i2c_word_write(0x3621, reg_val | 0x20);
			}
			else
			{
				arducam_i2c_write_word_regs(OV5642_RGB_QVGA);
				arducam_i2c_word_read(0x3818,&reg_val);
				arducam_i2c_word_write(0x3818, (reg_val | 0x60) & 0xff);
				arducam_i2c_word_read(0x3621,&reg_val);
				arducam_i2c_word_write(0x3621, reg_val & 0xdf);
			}
			break;
		}
#endif

#ifdef OV3640_CAM
		case smOV3640:
		{
			(void) arducam_i2c_write_word_regs(OV3640_QVGA);
			break;
		}
#endif

#ifdef OV2640_CAM
		case smOV2640:
		{
			arducam_i2c_write(0xff, 0x01);
			arducam_i2c_write(0x12, 0x80);
			arducam_delay_ms(100);
			if(myCAM.m_fmt == fmtJPEG)
			{
				arducam_i2c_write_regs(OV2640_JPEG_INIT);
				arducam_i2c_write_regs(OV2640_YUV422);
				arducam_i2c_write_regs(OV2640_JPEG);
				arducam_i2c_write(0xff, 0x01);
				arducam_i2c_write(0x15, 0x00);
				arducam_i2c_write_regs(OV2640_320x240_JPEG);
				//arducam_i2c_write(0xff, 0x00);
				//arducam_i2c_write(0x44, 0x32);
			}
			else
			{
				arducam_i2c_write_regs(OV2640_QVGA);
			}
			break;
		}
#endif

		case smOV9655:
		{

			break;
		}
		case smMT9M112:
		{

			break;
		}

		default:

			break;
	}
}