[DUDA] Editar Camdriver

I <3 Argim!
Responder
Avatar de Usuario
Epsy
Argim Starter
Argim Starter
Mensajes: 110
Registrado: Dom Jul 12, 2009 8:19 pm
Ubicación: Netherlands
Agradecido: 0
Agradecimiento recibido: 0

[DUDA] Editar Camdriver

Mensaje por Epsy »

¿ Alguien sabe como editar un camdriver ?
Se que el archivo .dat se puede abrir con el bloc de notas y ahi les cambio los codigos del Sistema Hexadecimal, pero lo que yo quiero hacer es agregar los fps, es decir, el camdriver original viene con estos fps
//14 fps, 13MHz

FRAME_RATE_AUTO =
#WRITE_SENSOR(05 00A3)    // Context B (full-res) Horizontal Blank
#WRITE_SENSOR(06 0054)    // Context B (full-res) Vertical Blank
#WRITE_SENSOR(07 00A3)    // Context A (preview) Horizontal Blank
#WRITE_SENSOR(08 000D)    // Context A (preview) Vertical Blank
#WRITE_SENSOR(20 0700)    // Read Mode Context B
#WRITE_SENSOR(21 0400)    // Read Mode Context A
#WRITE_CONTROL(39 032B)    // AE Line size Context A
#WRITE_CONTROL(3A 032B)    // AE Line size Context B
#WRITE_CONTROL(3B 055B)    // AE shutter delay limit Context A
#WRITE_CONTROL(3C 055B)    // AE shutter delay limit Context B
#WRITE_CONTROL(57 010B)    // Context A Flicker full frame time (60Hz)
#WRITE_CONTROL(58 0140)    // Context A Flicker full frame time (50Hz)
#WRITE_CONTROL(59 010B)    // Context B Flicker full frame time (60Hz)
#WRITE_CONTROL(5A 0140)    // Context B Flicker full frame time (50Hz)
#WRITE_CONTROL(5C 0905)    // 60Hz Flicker Search Range
#WRITE_CONTROL(5D 0D09)    // 50Hz Flicker Search Range
#WRITE_CONTROL(64 5E1C)    // Flicker parameter
#WRITE_CONTROL(CD 2185)    //snapshot config (CD 2187)
#WRITE_IFP(05 000C)      // APERTURE_GAIN (sharpness adjusting)
;
Solo viene con esos 14 fps,yo quiero agregarle mas.
Y sobre el color, se cambia esta linea ?
//CCM Doris 10.04.06
COLOR_CORRECTION=
#WRITE_CONTROL(02 00AE) //BASE_MATRIX_SIGNS
#WRITE_CONTROL(09 00B1) //BASE_MATRIX_COEF_K1
#WRITE_CONTROL(0A 0091) //BASE_MATRIX_COEF_K2
#WRITE_CONTROL(0B 005B) //BASE_MATRIX_COEF_K3
#WRITE_CONTROL(0C 005F) //BASE_MATRIX_COEF_K4
#WRITE_CONTROL(0D 00DA) //BASE_MATRIX_COEF_K5
#WRITE_CONTROL(0E 0029) //BASE_MATRIX_COEF_K6
#WRITE_CONTROL(0F 0010) //BASE_MATRIX_COEF_K7
#WRITE_CONTROL(10 006D) //BASE_MATRIX_COEF_K8
#WRITE_CONTROL(11 00DF) //BASE_MATRIX_COEF_K9
#WRITE_CONTROL(15 0000) //DELTA_COEF_SIGNS
#WRITE_CONTROL(16 0000) //DELTA_MATRIX_COEF_D1
#WRITE_CONTROL(17 0000) //DELTA_MATRIX_COEF_D2
#WRITE_CONTROL(18 0000) //DELTA_MATRIX_COEF_D3
#WRITE_CONTROL(19 0000) //DELTA_MATRIX_COEF_D4
#WRITE_CONTROL(1A 0000) //DELTA_MATRIX_COEF_D5
#WRITE_CONTROL(1B 0000) //DELTA_MATRIX_COEF_D6
#WRITE_CONTROL(1C 0000) //DELTA_MATRIX_COEF_D7
#WRITE_CONTROL(1D 0000) //DELTA_MATRIX_COEF_D8
#WRITE_CONTROL(1E 0000) //DELTA_MATRIX_COEF_D9
#WRITE_CONTROL(5E 5F49) //RATIO_BASE_REG
#WRITE_CONTROL(5F 3A22) //RATIO_DELTA_REG
#WRITE_CONTROL(60 0002) //SIGNS_DELTA_REG
#WRITE_CONTROL(03 3923) //BASE_MATRIX_SCALE_K1_K5
#WRITE_CONTROL(04 0724) //BASE_MATRIX_SCALE_K6_K9
#WRITE_CONTROL(22 A078) // AWB_RED_LIMIT
#WRITE_CONTROL(23 A078) // AWB_BLUE_LIMIT
#WRITE_IFP(06 $f $r2 0 1 $b0 01 7 1 06 $w0 $w1)    //enable Manual White Balance
$d01F4                                          //Wait500 ms delay for both Colour correction and ROW_NOISE_REDUCTION
#WRITE_IFP(06 $f $r2 0 1 $b0 00 7 1 06 $w0 $w1)    //Disable the Manual White Balance
                                                                            //the toggle of the Manual White Balance is done to force loading the new tabl
Me ayudarian por favor ??

Saludos!!
Última edición por Epsy el Lun Oct 05, 2009 7:33 pm, editado 1 vez en total.
Avatar de Usuario
matiaz
Colaborador
Colaborador
Mensajes: 7676
Registrado: Sab Sep 08, 2007 6:55 pm
Ubicación: Pergamino - Bs As
Agradecido: 0
Agradecimiento recibido: 0

Re:[DUDA] Editar Camdriver

Mensaje por matiaz »

No hagas flood djaguss. Si no te contestó nadie es porque no leyeron el post o porque nadie tiene una respuesta a tu inquietud.

Buscá las siguientes líneas:

Código: Seleccionar todo

//Example: 3C means 0x3C = 60 => frame rate 60 / 4 = 15 fps
VR_NORMAL_MODE_FR=60;//24fps
VR_NIGHT_MODE_FR=38;//14fps  
"3C" es 60, que se divide por 4 y te da el número de FPS. Podés duplicar el valor poniendo "78" en vez de "3C". Nightmode es "modo nocturno".

Código: Seleccionar todo

  41[80,60,3E8],        //  128 x 96    Viewfinder  Video record SQCIF 10FPS
  42[B0,90,3E8],        //  176 x 144   Viewfinder  Video record QCIF 10 FPS
  43[80,60,2BC],        //  128 x 96    Viewfinder  Video record SQCIF 7,5 FPS
  44[B0,90,2BC],        //  176 x 144   Viewfinder  Video record QCIF  7,5 FPS 
Modificá 3E8 y 2BC por el número de FPS que quieras, en hexadecimal.
Avatar de Usuario
Epsy
Argim Starter
Argim Starter
Mensajes: 110
Registrado: Dom Jul 12, 2009 8:19 pm
Ubicación: Netherlands
Agradecido: 0
Agradecimiento recibido: 0

Re:[DUDA] Editar Camdriver

Mensaje por Epsy »

Eso mas o menos lo entendìa, pero para editar colores es dificil ?
Gracias  ;)
Avatar de Usuario
matiaz
Colaborador
Colaborador
Mensajes: 7676
Registrado: Sab Sep 08, 2007 6:55 pm
Ubicación: Pergamino - Bs As
Agradecido: 0
Agradecimiento recibido: 0

Re:[DUDA] Editar Camdriver

Mensaje por matiaz »

Djaguss escribió: Eso mas o menos lo entendìa, pero para editar colores es dificil ?
Gracias  ;)
Vas a estar un mes probando combinaciones y no vas a obtener un resultado que se adapte a los distintos tipos de iluminación, exposición, balance de blancos.
Avatar de Usuario
Epsy
Argim Starter
Argim Starter
Mensajes: 110
Registrado: Dom Jul 12, 2009 8:19 pm
Ubicación: Netherlands
Agradecido: 0
Agradecimiento recibido: 0

Re:[DUDA] Editar Camdriver

Mensaje por Epsy »

Perdon, pero no encontre la sig. linea:

Código: Seleccionar todo

//Example: 3C means 0x3C = 60 => frame rate 60 / 4 = 15 fps
VR_NORMAL_MODE_FR=60;//24fps
VR_NIGHT_MODE_FR=38;//14fps  
Avatar de Usuario
matiaz
Colaborador
Colaborador
Mensajes: 7676
Registrado: Sab Sep 08, 2007 6:55 pm
Ubicación: Pergamino - Bs As
Agradecido: 0
Agradecimiento recibido: 0

Re:[DUDA] Editar Camdriver

Mensaje por matiaz »

Subí tu camdriver que veo dónde puede llegar a estar. De última, hay que agregarla.
Avatar de Usuario
Epsy
Argim Starter
Argim Starter
Mensajes: 110
Registrado: Dom Jul 12, 2009 8:19 pm
Ubicación: Netherlands
Agradecido: 0
Agradecimiento recibido: 0

Re:[DUDA] Editar Camdriver

Mensaje por Epsy »

Uso sergiober 14.7 :

Código: Seleccionar todo

 //=========================================================
//Information section
//=========================================================

info_name=MT9V112;
info_vendor=Micron;
info_major_ver=0E;
info_minor_ver=7;

//=========================================================
//Revision history
//=========================================================

// 1.6 Set all GPIO pins as output before setting them high or low.
// 1.7 General clean up. Properties and new vf resulution added
// 2.0 First release for Wilma only, all properties added
// 2.7 Power off sequence changed according to Mika Sipola's explanation. 
// 2.8 New LCM implemented for the Largan lens.
// 2.9 Framerate settings changed or implemented.
// 3.0 Corrected LCM. New CCM implemented.
//  	 Added Autoframerate (26/13 fps)
//     Added Normal and Dark Mode in PROP 7 only
//     Added Sequencer snapshot scheme, removed context switch scheme.
//     Added Autoframerate (14.645 / 14.645) no skip
// 3.1 #WRITE_CONTROL(CD 21A7)==> #WRITE_CONTROL(CD 2187) blank frames enabled
// 3.2 Corrections made to make blanked frames to work. Among other things 
//     remove all #WRITE_CONTROL(CD 21A7)and only have #WRITE_CONTROL(CD 2187) 
//     in Frame_Rate_Auto.
// 3.3 Add AWB in init to test if problem with whitebalance in FaceWarp was solved
// 3.4 AWB in init removed (didn't work the way it was intented). Clock in viewfinder
//     changed to 13 MHz, necessary changes for this switch implemented as well.
// 		 The delay when toggling AE shortened to 100 ms. AE-target changed from 0C35 to
//		 0C4A (default). External flash support implemented and working. New gamma settings.
// 3.5 New CCM implemented (still a bit to "pale colours" but the US CCM gives yellow skin tone).
//     Flash fire limit increased.
// 3.6 Window of interest for videomode 176x144 corrected to not give wrong proportions.
// 3.7 Color problem (pinkish image) in Video mode fixed by adding #WRITE_IFP(05 000C) // APERTURE_GA
// 3.8 In seq_set_prop_a_2 the ouput size and aspect ratio wrtings added to solve problem in ITP. 
//     This change only affects the ITP since SSW don't use seq_set_prop_a_2
// 3.9 The instruction "#WRITE_CONTROL(1E 004D) //DELTA_MATRIX_COEF_D9// Colour correction on" in the 
//		 colour removed since it was misplaced and sometimes caused a colourflickering in the ITP
//		 (but not in the SSW). Registers 0x222 and 0x223 (camera control registers) changed from FF00 to
//		 A078 after recommendation from Micron.
// 4.0 Out-commentation of Brightness property 0 removed.
// 14.1 sE MODIFICA PARA QUE GRABE A 14 fps EN ALTA CALIDAD Y 10 FPS EN BAJA CALIDAD (basado en camdriver 4.5 de Darksun).
// 14.2 sE CAMBIAN EFECTOS POR PROPIEDADES de imagen (SERGIOGBER)
// 14.3 SE AUMENTA CONTRASTE DE COLORES (sERGIOGBER)
// 14.4 sE MODIFICA MATRIZ DE CORRECCIÓN DE COLORES PARA INCREMENTAR COLOR, SE RESTABLECE CONFIGURACION ORIGINAL GAMMA (SERGIOGBER)
// 14.5 sE MODIFICA MATRIZ GAMMA PARA DARLE MAS CONTRASTE (SERGIOGBER)
// 14.6 SE AGREGA FILTRADO PARA MODO NOCTURNO (SERGIOGBER). sE MODIFICA MATRIZ GAMMA PARA ADECUARLA A LA NUEVA 
//	CONFIGURACION Y MINIMIZAR SATURACION (SERGIOGBER). sE INCREMENTA TIEMPO DE EXPOSICION PARA DARLE MAYOR 
//	SENSIBILIDAD CON POCA LUZ Y MENOR RUIDO (SERGIOGBER).
// 14.7 Se genera el menu modo de ajuste que permite configurar Brillo, Tipo de iluminación, efectos, enfoque y ajuste de color(SERGIOGBER)
// 	Se modifica menu tipo de iluminación para obtener menor saturación cuando se selecciona alguno te los tipos de luz, 
// 	a la vez que se obtiene mas nitidez en colores y menor ruido al seleccionar tipo de iluminación automática (SERGIOGBER).
// 	Seleccion de Enfoque: permite seleccionar entre 0 y 200% (100% defaut). Con mayor enfoque se realzan mas los contornos,
// 	con menor enfoque se disminuye el ruido.
// 	Seleccion de Color: permite seleccionar entre 0 y 150% del color de la imagen (0% para B&N y 150% full color, default)
// 
//=========================================================
//Power on sequence
//=========================================================


cam_power_on_0 = 5, 0, 0, 1, 64;        // Pull RST pin and wait 100 ms
cam_power_on_1 = 5, 1, 12, 1, 0;        // Set GPIO 12 as output (VDD_SA, VDD_IO 2.7V; VDD_AF 2.7V)
cam_power_on_2 = 5, 2, 12, 0, 5;        // Set GPIO 12 low and wait 5 ms
cam_power_on_3 = 5, 3, 1, 32C8, 5;     // Turn on 13 MHz clock and wait 5 ms
cam_power_on_4 = 5, 0, 0, 0, 64;        // Release RST pin and wait 100 ms


//=========================================================
//Power off sequence
//=========================================================

cam_power_off_0= 5, 1, 12, 1, 0;    // Set GPIO 12 as output 
cam_power_off_1= 5, 2, 12, 1, 5;    // Set GPIO 12 high 
cam_power_off_2= 5, 3, 1, 1, 0;     // Turn off 13 MHz clock 


cam_i2c_address=5d;  

cam_power_i2c_0=$f F0 00 00 $f 0D 00 48;        // I2C sequence select camera chip reg page 0 set reg 13 to 0048
    
cam_vf_clock_freq=1, 32c8;//13 MHz //26MHz //4, 6590
cam_ss_clock_freq=1, 1964;//13MHz
cam_init_result=;

cam_ss_format=B100;
cam_vf_format=B100;

cam_vf_sync=5;
cam_ss_sync=5;


cam_ss_retries=39;

// ==================== Version ====================
// Major version stored in internal register 14
// Minor version stored in internal register 07
//==================================================

seq_get_prop_0 = $s1 0E $s0 07;     // Version: 14.7


//=========================================================
//Support resolution
//=========================================================

sup_sizes=
                    // CAPTURE MODE
  1[280,1E0,0],             // SS 640 x 480
  2[140,F0,0],              // SS 320 x 240
  3[A0,78,0],               // SS 160 x 120
  4[64,3C,0],               // SS 100 x  60
  d[280,1E0,0],             // 640 x 480   Snapshot        VGA in UYV422

                    // VF MODE
                    
  20[80,60,5DC],            // VF 128x96  
  21[80,A0,5DC],            // VF 128x160 
  30[50,3C,5DC],            // VF 80x60   
  31[50,65,5DC],            // VF 80x101 

                    // VR MODE
                   

  41[80,60,3E8],            //  128 x 96    Viewfinder  Video record SQCIF 10FPS
  42[B0,90,3E8],            //  176 x 144   Viewfinder  Video record QCIF 10 FPS
  43[80,60,2BC],            //  128 x 96    Viewfinder  Video record SQCIF 7,5 FPS
  44[B0,90,2BC],            //  176 x 144   Viewfinder  Video record QCIF  7,5 FPS

    ;

//=========================================================
// Support Properties:
//=========================================================

sup_properties =
  0[0, F,9],   // Exposure (EV-3.0 to EV+2.0)
  1[0, 4,0],   // White balance
  2[0, 3,0],   // Flicker (0=auto, 1=50Hz, 2=60Hz)
  3[0, 1,0],   // Vertical mirror (0 = off, 1 = on)
  4[0, 1,0],   // Horizontal mirror (0 = off, 1 = on)
  6[a,28,a],   // Zoom (1.0x to 2.0x)
  7[0, 1,0],   // Night mode
  8[0, 4,0],   // Effect
  a[0, 2,0],   // Xenon flash
 1e[0,1F,0],   // Test Pattern (0= none, others, see below) for ITP
  ;

//=========================================================
// MACROS to write registers of MT9V112
//=========================================================



WRITE_SENSOR  = $a5d F0 00 00 $f !0 $f;
READ_SENSOR   = $a5d F0 00 00 $f !0 $f;
WRITE_IFP     = $a5d F0 00 01 $f !0 $f;
READ_IFP      = $a5d F0 00 01 $f !0 $f;
WRITE_CONTROL = $a5d F0 00 02 $f !0 $f;
READ_CONTROL  = $a5d F0 00 02 $f !0 $f;



REGISTER_READ   =  !0 $r2 0 1 $f;   // read 2 byte from cam reg !0 into internal 0 and 1

REGISTER_MODIFY =
  !0 $r2 0 1 $f   // Read from CamReg !0 (2 Bytes) to Internal Reg 0, 1
  !1              // Do !1 sequence
  $f !0 $w0 $w1 $f// Write to CamReg !0 (2 Bytes) from Internal Reg 0, 1
  ;

seq_ping        = #SET_PAGE_SENSOR #REGISTER_READ(00);  // read Chip Version
cam_ping_result = 12, 29;

//CCM Doris 10.04.06 
COLOR_CORRECTION=
#WRITE_CONTROL(02 00AE) //BASE_MATRIX_SIGNS 
#WRITE_CONTROL(09 00B4) //BASE_MATRIX_COEF_K1 
#WRITE_CONTROL(0A 00B1) //BASE_MATRIX_COEF_K2 
#WRITE_CONTROL(0B 0076) //BASE_MATRIX_COEF_K3 
#WRITE_CONTROL(0C 009C) //BASE_MATRIX_COEF_K4 
#WRITE_CONTROL(0D 0082) //BASE_MATRIX_COEF_K5 
#WRITE_CONTROL(0E 0030) //BASE_MATRIX_COEF_K6 
#WRITE_CONTROL(0F 0042) //BASE_MATRIX_COEF_K7 
#WRITE_CONTROL(10 003C) //BASE_MATRIX_COEF_K8 
#WRITE_CONTROL(11 009C) //BASE_MATRIX_COEF_K9 
#WRITE_CONTROL(15 0000) //DELTA_COEF_SIGNS 
#WRITE_CONTROL(16 0000) //DELTA_MATRIX_COEF_D1 
#WRITE_CONTROL(17 0000) //DELTA_MATRIX_COEF_D2 
#WRITE_CONTROL(18 0000) //DELTA_MATRIX_COEF_D3 
#WRITE_CONTROL(19 0000) //DELTA_MATRIX_COEF_D4 
#WRITE_CONTROL(1A 0000) //DELTA_MATRIX_COEF_D5 
#WRITE_CONTROL(1B 0000) //DELTA_MATRIX_COEF_D6 
#WRITE_CONTROL(1C 0000) //DELTA_MATRIX_COEF_D7 
#WRITE_CONTROL(1D 0000) //DELTA_MATRIX_COEF_D8 
#WRITE_CONTROL(1E 0000) //DELTA_MATRIX_COEF_D9 
#WRITE_CONTROL(5E 5F49) //RATIO_BASE_REG 
#WRITE_CONTROL(5F 3A22) //RATIO_DELTA_REG 
#WRITE_CONTROL(60 0002) //SIGNS_DELTA_REG 
#WRITE_CONTROL(03 2923) //BASE_MATRIX_SCALE_K1_K5 
#WRITE_CONTROL(04 04A4) //BASE_MATRIX_SCALE_K6_K9 
#WRITE_CONTROL(22 A078) // AWB_RED_LIMIT 
#WRITE_CONTROL(23 A078) // AWB_BLUE_LIMIT
#WRITE_IFP(06 $f $r2 0 1 $b0 01 7 1 06 $w0 $w1)    //enable Manual White Balance
$d01F4                                          //Wait500 ms delay for both Colour correction and ROW_NOISE_REDUCTION
#WRITE_IFP(06 $f $r2 0 1 $b0 00 7 1 06 $w0 $w1)    //Disable the Manual White Balance
                                                                            //the toggle of the Manual White Balance is done to force loading the new tabl

;

                // Set Color Correction Registers for sepia output.
COLOR_CORRECTION_SEPIA =;


                //LC Doris 10.04.06 
LENS_CORRECTION_NORMAL= 
#WRITE_IFP(80 0003) //LENS_CORRECT_CONTROL 
#WRITE_IFP(81 D606) //LENS_ADJ_VERT_RED_0 
#WRITE_IFP(82 EFF2) //LENS_ADJ_VERT_RED_1_2 
#WRITE_IFP(83 02FA) //LENS_ADJ_VERT_RED_3_4 
#WRITE_IFP(84 E804) //LENS_ADJ_VERT_GREEN_0 
#WRITE_IFP(85 F4F5) //LENS_ADJ_VERT_GREEN_1_2 
#WRITE_IFP(86 03FC) //LENS_ADJ_VERT_GREEN_3_4 
#WRITE_IFP(87 E303) //LENS_ADJ_VERT_BLUE_0 
#WRITE_IFP(88 F7F6) //LENS_ADJ_VERT_BLUE_1_2 
#WRITE_IFP(89 03FE) //LENS_ADJ_VERT_BLUE_3_4 
#WRITE_IFP(8A D70A) //LENS_ADJ_HORIZ_RED_0 
#WRITE_IFP(8B E8E1) //LENS_ADJ_HORIZ_RED_1_2 
#WRITE_IFP(8C FCF5) //LENS_ADJ_HORIZ_RED_3_4 
#WRITE_IFP(8D 0002) //LENS_ADJ_HORIZ_RED_5 
#WRITE_IFP(8E E207) //LENS_ADJ_HORIZ_GREEN_0 
#WRITE_IFP(8F EDE8) //LENS_ADJ_HORIZ_GREEN_1_2 
#WRITE_IFP(90 FDF8) //LENS_ADJ_HORIZ_GREEN_3_4 
#WRITE_IFP(91 0002) //LENS_ADJ_HORIZ_GREEN_5 
#WRITE_IFP(92 DD07) //LENS_ADJ_HORIZ_BLUE_0 
#WRITE_IFP(93 EEE9) //LENS_ADJ_HORIZ_BLUE_1_2 
#WRITE_IFP(94 FFF9) //LENS_ADJ_HORIZ_BLUE_3_4 
#WRITE_IFP(95 0000) //LENS_ADJ_HORIZ_BLUE_5 
#WRITE_IFP(B6 140B) //LENS_ADJ_VERT_RED_5_6 
#WRITE_IFP(B7 4A19) //LENS_ADJ_VERT_RED_7_8 
#WRITE_IFP(B8 100A) //LENS_ADJ_VERT_GREEN_5_6 
#WRITE_IFP(B9 7F12) //LENS_ADJ_VERT_GREEN_7_8 
#WRITE_IFP(BA 130C) //LENS_ADJ_VERT_BLUE_5_6 
#WRITE_IFP(BB 2D1A) //LENS_ADJ_VERT_BLUE_7_8 
#WRITE_IFP(BC 1310) //LENS_ADJ_HORIZ_RED_6_7 
#WRITE_IFP(BD 1B1F) //LENS_ADJ_HORIZ_RED_8_9 
#WRITE_IFP(BE 0023) //LENS_ADJ_HORIZ_RED_10 
#WRITE_IFP(BF 0F0C) //LENS_ADJ_HORIZ_GREEN_6_7 
#WRITE_IFP(C0 1217) //LENS_ADJ_HORIZ_GREEN_8_9 
#WRITE_IFP(C1 0013) //LENS_ADJ_HORIZ_GREEN_10 
#WRITE_IFP(C2 0E0C) //LENS_ADJ_HORIZ_BLUE_6_7 
#WRITE_IFP(C3 1712) //LENS_ADJ_HORIZ_BLUE_8_9 
#WRITE_IFP(C4 0013) //LENS_ADJ_HORIZ_BLUE_10 
#WRITE_IFP(06 $f $r2 0 1 $b0 01 2 1 06 $w0 $w1) //enable the lens correction       
;

ROW_NOISE_REDUCTION =
                        #WRITE_CONTROL(3D 17DD)
                        #WRITE_SENSOR(5F 3630)
                        #WRITE_SENSOR(30 043E)
                        #WRITE_IFP(3B 043E)
                        #WRITE_CONTROL(2E 0000)
                        $d0064//delay 100 ms
                        #WRITE_CONTROL(2E 0C4A)        
;

PIXEL_NOISE_REDUCTION =
                        #WRITE_SENSOR(34 C019)
                        #WRITE_SENSOR(40 1800)
                        #WRITE_SENSOR(76 7358)
                        #WRITE_SENSOR(04 0282)
                        #WRITE_SENSOR(03 01E2)
                        #WRITE_IFP(A0 0282)
                        #WRITE_IFP(A3 01E2)
                        #WRITE_IFP(A6 0282)
                        #WRITE_IFP(A9 01E2)
;

LUMA_SET_SS =

$cB 00
	#WRITE_IFP(34 0000)     // LUMA_OFFSET
	#WRITE_IFP(35 FF00)     // CLIPPING_LIM_OUT_LUMA
	#WRITE_CONTROL(2E 0240)
                        
//Black 5, Gamma 0.50, Contrast 1.25 


	#WRITE_IFP(53 1306)     //(2) GAMMA_A_Y1_Y2 
	#WRITE_IFP(54 4B28)     //(2) GAMMA_A_Y3_Y4 
	#WRITE_IFP(55 A077)     //(2) GAMMA_A_Y5_Y6 
	#WRITE_IFP(56 CAB8)     //(2) GAMMA_A_Y7_Y8 
	#WRITE_IFP(57 E2D6)     //(2) GAMMA_A_Y9_Y10 
	#WRITE_IFP(58 0000)     //(1) GAMMA_A_Y0 
	#WRITE_IFP(DC 1306)     //(16) GAMMA_B_Y1_Y2 
	#WRITE_IFP(DD 4B28)     //(16) GAMMA_B_Y3_Y4 
	#WRITE_IFP(DE A077)     //(16) GAMMA_B_Y5_Y6 
	#WRITE_IFP(DF CAB8)     //(16) GAMMA_B_Y7_Y8 
	#WRITE_IFP(E0 E2D6)     //(16) GAMMA_B_Y9_Y10 
	#WRITE_IFP(E1 0000)     //(8) GAMMA_B_Y0 
$cl
	#WRITE_IFP(34 0000)     // LUMA_OFFSET
	#WRITE_IFP(35 FF00)     // CLIPPING_LIM_OUT_LUMA
 	#WRITE_CONTROL(2E 0234)
                        
//Black 5, Gamma 0.50, Contrast 1.25 

	#WRITE_IFP(53 1809)     //(2) GAMMA_A_Y1_Y2 
	#WRITE_IFP(54 5630)     //(2) GAMMA_A_Y3_Y4 
	#WRITE_IFP(55 B48A)     //(2) GAMMA_A_Y5_Y6 
	#WRITE_IFP(56 E2CE)     //(2) GAMMA_A_Y7_Y8 
	#WRITE_IFP(57 FFF1)     //(2) GAMMA_A_Y9_Y10 
	#WRITE_IFP(58 0000)     //(1) GAMMA_A_Y0 
	#WRITE_IFP(DC 1809)     //(16) GAMMA_B_Y1_Y2 
	#WRITE_IFP(DD 5630)     //(16) GAMMA_B_Y3_Y4 
	#WRITE_IFP(DE B48A)     //(16) GAMMA_B_Y5_Y6 
	#WRITE_IFP(DF E2CE)     //(16) GAMMA_B_Y7_Y8 
	#WRITE_IFP(E0 FFF1)     //(16) GAMMA_B_Y9_Y10 
	#WRITE_IFP(E1 0000)     //(8) GAMMA_B_Y0 
$cx
;  




//10 fps, 13MHz

FRAME_RATE_10 =
#WRITE_SENSOR(05 0289)     // Context B (full-res) Horizontal Blank 
#WRITE_SENSOR(06 000D)     // Context B (full-res) Vertical Blank 
#WRITE_SENSOR(07 0289)     // Context A (preview) Horizontal Blank 
#WRITE_SENSOR(08 000D)     // Context A (preview) Vertical Blank 
#WRITE_SENSOR(20 0700)     // Read Mode Context B 
#WRITE_SENSOR(21 0400)     // Read Mode Context A 
#WRITE_CONTROL(39 032B)     // AE Line size Context A 
#WRITE_CONTROL(3A 032B)     // AE Line size Context B 
#WRITE_CONTROL(3B 055B)     // AE shutter delay limit Context A 
#WRITE_CONTROL(3C 055B)     // AE shutter delay limit Context B 
#WRITE_CONTROL(57 010B)     // Context A Flicker full frame time (60Hz) 
#WRITE_CONTROL(58 0140)     // Context A Flicker full frame time (50Hz) 
#WRITE_CONTROL(59 010B)     // Context B Flicker full frame time (60Hz) 
#WRITE_CONTROL(5A 0140)     // Context B Flicker full frame time (50Hz) 
#WRITE_CONTROL(5C 0905)     // 60Hz Flicker Search Range 
#WRITE_CONTROL(5D 0D09)     // 50Hz Flicker Search Range 
#WRITE_CONTROL(64 5E1C)     // Flicker parameter 
#WRITE_CONTROL(37 0120)
$cA 00 #WRITE_IFP(05 0000) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 01 #WRITE_IFP(05 0009) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 02 #WRITE_IFP(05 0002) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 03 #WRITE_IFP(05 0003) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 04 #WRITE_IFP(05 000C) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 05 #WRITE_IFP(05 0005) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 06 #WRITE_IFP(05 0006) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 07 #WRITE_IFP(05 0007) $cx       // APERTURE_GAIN (sharpness adjusting)
; 


//14 fps, 13MHz

FRAME_RATE_14 =
#WRITE_SENSOR(05 00A3)     // Context B (full-res) Horizontal Blank 
#WRITE_SENSOR(06 0054)     // Context B (full-res) Vertical Blank 
#WRITE_SENSOR(07 00A3)     // Context A (preview) Horizontal Blank 
#WRITE_SENSOR(08 000D)     // Context A (preview) Vertical Blank 
#WRITE_SENSOR(20 0700)     // Read Mode Context B 
#WRITE_SENSOR(21 0400)     // Read Mode Context A 
#WRITE_CONTROL(39 032B)     // AE Line size Context A 
#WRITE_CONTROL(3A 032B)     // AE Line size Context B 
#WRITE_CONTROL(3B 055B)     // AE shutter delay limit Context A 
#WRITE_CONTROL(3C 055B)     // AE shutter delay limit Context B 
#WRITE_CONTROL(57 010B)     // Context A Flicker full frame time (60Hz) 
#WRITE_CONTROL(58 0140)     // Context A Flicker full frame time (50Hz) 
#WRITE_CONTROL(59 010B)     // Context B Flicker full frame time (60Hz) 
#WRITE_CONTROL(5A 0140)     // Context B Flicker full frame time (50Hz) 
#WRITE_CONTROL(5C 0905)     // 60Hz Flicker Search Range 
#WRITE_CONTROL(5D 0D09)     // 50Hz Flicker Search Range 
#WRITE_CONTROL(64 5E1C)     // Flicker parameter 
#WRITE_CONTROL(37 0120)
$cA 00 #WRITE_IFP(05 0000) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 01 #WRITE_IFP(05 0009) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 02 #WRITE_IFP(05 0002) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 03 #WRITE_IFP(05 0003) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 04 #WRITE_IFP(05 000C) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 05 #WRITE_IFP(05 0005) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 06 #WRITE_IFP(05 0006) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 07 #WRITE_IFP(05 0007) $cx       // APERTURE_GAIN (sharpness adjusting)
; 


//14 fps, 13MHz

FRAME_RATE_AUTO =
#WRITE_SENSOR(05 00A3)     // Context B (full-res) Horizontal Blank 
#WRITE_SENSOR(06 0054)     // Context B (full-res) Vertical Blank 
#WRITE_SENSOR(07 00A3)     // Context A (preview) Horizontal Blank 
#WRITE_SENSOR(08 000D)     // Context A (preview) Vertical Blank 
#WRITE_SENSOR(20 0700)     // Read Mode Context B 
#WRITE_SENSOR(21 0400)     // Read Mode Context A 
#WRITE_CONTROL(39 032B)     // AE Line size Context A 
#WRITE_CONTROL(3A 032B)     // AE Line size Context B 
#WRITE_CONTROL(3B 055B)     // AE shutter delay limit Context A 
#WRITE_CONTROL(3C 055B)     // AE shutter delay limit Context B 
#WRITE_CONTROL(57 010B)     // Context A Flicker full frame time (60Hz) 
#WRITE_CONTROL(58 0140)     // Context A Flicker full frame time (50Hz) 
#WRITE_CONTROL(59 010B)     // Context B Flicker full frame time (60Hz) 
#WRITE_CONTROL(5A 0140)     // Context B Flicker full frame time (50Hz) 
#WRITE_CONTROL(5C 0905)     // 60Hz Flicker Search Range 
#WRITE_CONTROL(5D 0D09)     // 50Hz Flicker Search Range 
#WRITE_CONTROL(64 5E1C)     // Flicker parameter 
#WRITE_CONTROL(CD 2185)     //snapshot config (CD 2187)
$cA 00 #WRITE_IFP(05 0000) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 01 #WRITE_IFP(05 0009) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 02 #WRITE_IFP(05 0002) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 03 #WRITE_IFP(05 0003) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 04 #WRITE_IFP(05 000C) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 05 #WRITE_IFP(05 0005) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 06 #WRITE_IFP(05 0006) $cx       // APERTURE_GAIN (sharpness adjusting)
$cA 07 #WRITE_IFP(05 0007) $cx       // APERTURE_GAIN (sharpness adjusting)
; 





COMPARE_TWO_BYTE_NUMBERS =              // Compare a with b, where a and b are 1 byte long. Result passed in register 0.
                                        // Result: a<b => output 1, a=b => output 2, a>b => output 3
                        $-5 r6          // Subtract register 6 from register 5
                                        // If the result is negative, then register 0 will contain a very large number
                                        // since the registers are 32-bit unsigned. Thus, if the second byte is a FF, then 
                                        // b is larger than a, otherwise a is larger than b. If the result is 0, then
                                        // a is equal to b.
                        $c5 00          // IF register 5 is 0 THEN
                          $s7 02        //   a=b: pass result 02 in register 0.
                        $cl             // ELSE
                          $>5 8         //   Shift one byte to the right
                          $c5 FF        //   IF register 5 is FF THEN
                            $s7 01      //     a<b: pass result 01 in register 7.
                          $cl           //   ELSE
                            $s7 03      //     a>b: pass result 03 in register 7.
                          $cx           //   ENDIF
                        $cx             // ENDIF
                        ;

IS_A_LARGER_THAN_B =                        // Compare a with b, where a and b are 2 bytes long each. Result passed in register 0.
                                            // a=r2r1 and b=r4r3, where rx refers to the byte sized register x
                                            // Result: a<b => output 1, a=b => output 2, a>b => output 3
                    $m5 2 $m6 4             // Copy MSB of a and b to register 5 and 6
                    #COMPARE_TWO_BYTE_NUMBERS // First compare MSB of the two numbers
                    $c7 02                  // IF MSB a = MSB b: LSB needs to be compared also.
                      $m5 1 $m6 3           // Copy LSB of a and b to register 5 and 6
                      #COMPARE_TWO_BYTE_NUMBERS // Compare LSB of the two numbers stored in !
                      $c7 02                // IF LSB a = LSB b THEN
                        $s0 02              // a=b: pass result 02 in register 0
                      $cl                   // ELSE
                        $c7 01              // IF LSB a < LSB b THEN
                          $s0 01            // a<b: pass result 01 in register 0
                        $cl                 // ELSE
                          $s0 03            // only possibility is that a>b: pass result 03 in register 0
                        $cx
                      $cx
                    $cl                     // ELSE find out if a<b or b>a
                      $c7 01                //   IF MSB a< MSB b THEN
                        $s0 01              //     a<b: pass result 01 in register 0.
                      $cl                   //   ELSE
                        $s0 03              //     Only possibility is that a>b: pass result 03 in register 0.
                      $cx                   //   ENDIF
                    $cx                     // ENDIF
                    ;


// Set a flag if luma is below 40 => flash will be fired
SEQ_FLASH_LIMIT=    $c9 01 $"DORIS_flash_attached_intreg_9_%9" //Is the flash attached
                      #WRITE_CONTROL(CC 0004)
                      #WRITE_CONTROL(CB 0001)
                      #READ_CONTROL(4D $f $r2 2 1) $"DORIS_Status_reg_4D_%2_%1" //Store the Time averaged luma value in r1 and r2
                      $s4 00 $s3 30 $"DORIS_Status_int_reg_4_3_%4_%3" // Luma limit for flash
                      #IS_A_LARGER_THAN_B $"DORIS_Status_int_reg_0_%0"
                      $c0 01
                        $s8 01 $"DORIS_Flash_will_be_fired" // Flash will be fired
                      $cl
                        $s8 00 $"DORIS_Flash_will_not_be_fired_9_1" // Flash will not be fired
                      $cx
                    
                    $cl
                      $s8 00 $"DORIS_Flash_will_not_be_fired_9_0" // Flash will not flash (flash not attached)
                    $cx 
                    $"DORIS_Status_int_reg_8_%8"
                    ;

// adjustings for xenon flash
SEQ_SET_FLASH=	
	#WRITE_CONTROL(37 0120) //fixed upperlower 13.3 fps
	#WRITE_CONTROL(2E 0000) //target 0 
	$d064 //pause 100 ms 
	#WRITE_CONTROL(2E 0C4A)

//	 #WRITE_SENSOR(23 0008) //Turn off Fire flash every frame          
	#WRITE_CONTROL(D4 5469)
	//$d00C0   //default: C0
	#WRITE_CONTROL(F6 0020)
	#WRITE_CONTROL(FF 8080) //Xenon RB gain
	//#WRITE_CONTROL(37 0100)
            
;

//=========================================================
// Properties:
//=========================================================

// --- Brightness property 0 ---------------------
//
//  0 => -3 EV  1=> -(2 2/3) EV ....
//  9 =>  0 EV  ....
// 15 =>  2 EV
//------------------------------------------------


seq_set_prop_0_0 = $cC 00 #WRITE_CONTROL(2E 0108) $cx; // -3.0EV
seq_set_prop_0_1 = $cC 00 #WRITE_CONTROL(2E 010A) $cx; // -2.7EV
seq_set_prop_0_2 = $cC 00 #WRITE_CONTROL(2E 010E) $cx; // -2.3EV
seq_set_prop_0_3 = $cC 00 #WRITE_CONTROL(2E 0110) $cx  // -2.0EV
		   $cC 04 #WRITE_IFP(25 0035) $cx;	//color b&w
seq_set_prop_0_4 = $cC 00 #WRITE_CONTROL(2E 0116) $cx  // -1.7EV
		   $cC 04 #WRITE_IFP(25 0025) $cx;	//color 25%
seq_set_prop_0_5 = $cC 00 #WRITE_CONTROL(2E 011A) $cx  // -1.3EV
		   $cC 03 $sA 00 #WRITE_IFP(05 0000) $cx		       // Sharp =0
		   $cC 04 #WRITE_IFP(25 001D) $cx;	//color 37.5%
seq_set_prop_0_6 = $cC 00 #WRITE_CONTROL(2E 0120) $cx  // -1.0EV
		   $cC 03 $sA 01 #WRITE_IFP(05 0009) $cx		       // Sharp =25
		   $cC 04 #WRITE_IFP(25 0015) $cx;	//color 50%
seq_set_prop_0_7 = $cC 00 #WRITE_CONTROL(2E 0128) $cx  // -0.7EV
		   $cC 03 $sA 02 #WRITE_IFP(05 0002) $cx		       // Sharp =50
		   $cC 04 #WRITE_IFP(25 000D) $cx;	//color 75%
seq_set_prop_0_8 = $cC 00 #WRITE_CONTROL(2E 0138) $cx  // -0.3EV
		   $cC 03 $sA 03 #WRITE_IFP(05 0003) $cx		       // Sharp =75
		   $cC 04 #WRITE_IFP(25 0005) $cx;	//color 100%
seq_set_prop_0_9 = $cC 00 #LUMA_SET_SS $cx	 // default
                   $cC 01 #WRITE_CONTROL (24 6018)	//AUTO (DESACTIVADO)
                          #WRITE_CONTROL (22 B078)
                          #WRITE_CONTROL (23 9058)
                          $sB 00
                          #LUMA_SET_SS
                          $"DORIS_setuptest_WB Auto"
                   $cx
		   $cC 02 #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 00 0 3)) $cx		//normal
		   $cC 03 $sA 04 #WRITE_IFP(05 000C) $cx		       // Sharp =100
		   $cC 04 #WRITE_IFP(25 002D) $cx;	//color 150%
seq_set_prop_0_a = $cC 00 #WRITE_CONTROL(2E 0250) $cx	//  0.3EV
                   $cC 01 #WRITE_CONTROL (24 5050)	//  clear sky (daylight) (SOLARIZAR)
                          #WRITE_CONTROL (22 9878)
                          #WRITE_CONTROL (23 8868)
                          $sB 01
                          #LUMA_SET_SS
                   $cx
		   $cC 02 #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 03 0 3)) $cx		//negativo
		   $cC 03 $sA 05 #WRITE_IFP(05 0005) $cx;	 	      // Sharp =125
seq_set_prop_0_b = $cC 00 #WRITE_CONTROL(2E 0270) $cx	//  0.7EV
                   $cC 01 #WRITE_CONTROL (24 1518)	//incandescent lamp (NEGATIVO)
                          #WRITE_CONTROL (22 8878)
                          #WRITE_CONTROL (23 9888)
                          $sB 01
                          #LUMA_SET_SS
                   $cx
		   $cC 02 #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 02 0 3) E3 b0 23) $cx  	//sepia
		   $cC 03 $sA 06 #WRITE_IFP(05 0006) $cx;		       // Sharp =150
seq_set_prop_0_c = $cC 00 #WRITE_CONTROL(2E 1088) $cx	//  1.0EV
                   $cC 01 #WRITE_CONTROL (24 6018)	// fluorescent (SEPIA)
                          #WRITE_CONTROL (22 8878)
                          #WRITE_CONTROL (23 9898)
                          $sB 01
                          #LUMA_SET_SS
                   $cx
		   $cC 02 #WRITE_IFP(E2 8004) $cx	//solarizar
		   $cC 03 $sA 07 #WRITE_IFP(05 0007) $cx;	    	   // Sharp =200
seq_set_prop_0_d = $cC 00 #WRITE_CONTROL(2E 10A8) $cx	//  1.3EV
                   $cC 01 #WRITE_CONTROL (24 6060)	//  cloudy (BLANCO Y NEGRO)
                          #WRITE_CONTROL (22 8878)
                          #WRITE_CONTROL (23 7878)
                          $sB 00
                          #LUMA_SET_SS
                   $cx
		   $cC 02 #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 01 0 3)) $cx;	//b&w
seq_set_prop_0_e = $cC 00 #WRITE_CONTROL(2E 10C0) $cx;		//  1.7EV
seq_set_prop_0_f = $cC 00 #WRITE_CONTROL(2E 10D8) $cx;		//  2.0EV




// --- mode property 1 ------------------
//
//  0 => auto, (Thelma uses only auto)
//  1 => incandescent, 2 => fluorescent, 3 => clear sky, 4 => cloudy,

seq_set_prop_8_0 = $sC 00;	
seq_set_prop_8_4 = $sC 01;
seq_set_prop_8_1 = $sC 02;
seq_set_prop_8_2 = $sC 03;
seq_set_prop_8_3 = $sC 04;



// --- Flicker correction property 2 -------------
//
//  0 => auto, (Thelma uses only auto)
//  1 => 50 Hz, 2 => 60 Hz,
//------------------------------------------------
seq_set_prop_2_0 = #WRITE_CONTROL(5B 00 00);// auto
seq_set_prop_2_1 = #WRITE_CONTROL(5B 00 01);// 50Hz
seq_set_prop_2_2 = #WRITE_CONTROL(5B 00 03);// 60Hz


// --- Vertical mirror property 3 ----------------
//
//  0 => off, 1 => on
//------------------------------------------------
seq_set_prop_3_0 = #WRITE_IFP(#REGISTER_MODIFY(20,$b1 01 0 1));// off
seq_set_prop_3_1 = #WRITE_IFP(#REGISTER_MODIFY(20,$b1 00 0 1));// on


// --- Horizontal mirror property 4 --------------
//
//  0 => off, 1 => on
//------------------------------------------------
seq_set_prop_4_0 = #WRITE_IFP(#REGISTER_MODIFY(20,$b1 00 1 1));// off
seq_set_prop_4_1 = #WRITE_IFP(#REGISTER_MODIFY(20,$b1 01 1 1));// on


// --- Zoom property 6 ---------------------------
//
// 10 => 1.0 x zoom
// 20 => 2.0 x zoom
//[280,1E0,0],             // SS 640 x 480
//  2[140,F0,0],              // SS 320 x 240
//  3[A0,78,0],               // SS 160 x 120
//
seq_set_prop_6 = $"DORIS_zoom"
                    $z0
                    $s2 %0
                    $w2 $"DORIS_zoom_number_$w2_%2"
                $c2 0A
                        $c0 41
                            #WRITE_IFP(A5 4000)
                            #WRITE_IFP(A7 0080)
                            #WRITE_IFP(A8 4000)
                            #WRITE_IFP(AA 0060

                            #WRITE_IFP(A6 0280)
                            #WRITE_IFP(A9 01E0)
                        $cl
                            $c0 42
                                #WRITE_IFP(A5 4000)
                                #WRITE_IFP(A7 00B0)
                                #WRITE_IFP(A8 4000) 
                                #WRITE_IFP(AA 0090)

                                #WRITE_IFP(A6 024A)
                                #WRITE_IFP(A9 01E0)
                                
                            $cl 
                              $c0 44
                                #WRITE_IFP(A5 4000)
                                #WRITE_IFP(A7 00B0)
                                #WRITE_IFP(A8 4000) 
                                #WRITE_IFP(AA 0090)

                                #WRITE_IFP(A6 024A)
                                #WRITE_IFP(A9 01E0)
                                $cl                             
                                #WRITE_IFP(A5 4000)
                                #WRITE_IFP(A7 0080)
                                #WRITE_IFP(A8 4000)
                                #WRITE_IFP(AA 0060)
                                
                                #WRITE_IFP(A6 0280)
                                #WRITE_IFP(A9 01E0)
 $cx                           
                            $cx
                       
                        $cx
                        $"DORISsetuptest_zoom_mode_1x"      
                        
                    $cl
                        $w2
                        $c2 14 

                            $c0 41
                                #WRITE_IFP(A5 4000)
                                #WRITE_IFP(A7 0080)
                                #WRITE_IFP(A8 4000)
                                #WRITE_IFP(AA 0060)

                                #WRITE_IFP(A6 0140)
                                #WRITE_IFP(A9 00F0)
                            $cl
                                $c0 42
                                    #WRITE_IFP(A5 4000)
                                    #WRITE_IFP(A7 00B0)
                                    #WRITE_IFP(A8 4000)
                                    #WRITE_IFP(AA 0090)
                               
                                    #WRITE_IFP(A6 0125)
                                    #WRITE_IFP(A9 00F0)
                    
                                $cl
                                $c0 44
                                    #WRITE_IFP(A5 4000)
                                    #WRITE_IFP(A7 00B0)
                                    #WRITE_IFP(A8 4000)
                                    #WRITE_IFP(AA 0090)
                               
                                    #WRITE_IFP(A6 0125)
                                    #WRITE_IFP(A9 00F0)
                                    $cl
                    #WRITE_IFP(A5 4000)
                                    #WRITE_IFP(A7 0080)
                                    #WRITE_IFP(A8 4000)
                                    #WRITE_IFP(AA 0060)

                                    #WRITE_IFP(A6 0140) 
                                    #WRITE_IFP(A9 00F0)
                                    $cx
                                $cx
                    
                            $cx
                            $"DORISsetuptest_zoom_mode_2x"
                        $cl
                                $"DORISsetuptest_zoom_mode_4x"
                                $c0 41
                                    #WRITE_IFP(A5 4000)
                                    #WRITE_IFP(A7 0080)
                                    #WRITE_IFP(A8 4000)
                                    #WRITE_IFP(AA 0060)

                                    #WRITE_IFP(A6 00A0)
                                    #WRITE_IFP(A9 0078)
                                $cl
                                    $c0 42
                                        #WRITE_IFP(A5 4000)
                                        #WRITE_IFP(A7 00B0)
                                        #WRITE_IFP(A8 4000)
                                        #WRITE_IFP(AA 0090)
                               
                                        #WRITE_IFP(A6 0092)
                                        #WRITE_IFP(A9 0078)
                    
                                    $cl
                                    $c0 44
                                        #WRITE_IFP(A5 4000)
                                        #WRITE_IFP(A7 00B0)
                                        #WRITE_IFP(A8 4000)
                                        #WRITE_IFP(AA 0090)
                               
                                        #WRITE_IFP(A6 00A0)
                                        #WRITE_IFP(A9 0078)
                                        $cl
                                        #WRITE_IFP(A5 4000)
                                        #WRITE_IFP(A7 0080)
                                        #WRITE_IFP(A8 4000)
                                        #WRITE_IFP(AA 0060)

                                        #WRITE_IFP(A6 00A0) 
                                        #WRITE_IFP(A9 0078)
                                        $cx
                                    $cx
                    
                                $cx     
                            
                        $cx
                    $cx  
                    ;
                       
                        
                    
                    
// --- Exposure property 7 -----------------------
//
//  0 => Normal mode, 1 => Dark mode
//------------------------------------------------
seq_set_prop_7_0 =
#WRITE_CONTROL(37 0300)    //AE gain Zone limit 7.5 fps 
;

seq_set_prop_7_1 = 
#WRITE_CONTROL(37 0300)    //AE gain Zone limit 5.0 fps 
$sA 01
;

// --- Effect property 8 -------------------------
//  (Thelma doesn't use this property)
//  0 => normal,  1 => negative,      2 => solarize
//  3 => sepia,   4 => black & white
//------------------------------------------------
seq_set_prop_1_0 = #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 00 0 3));  // normal
seq_set_prop_1_1 = #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 03 0 3));  // negative
seq_set_prop_1_3 = #WRITE_IFP(E2 8004);                         // solarize
seq_set_prop_1_2 = #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 02 0 3) E3 b0 23);  // sepia
seq_set_prop_1_4 = #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 01 0 3));  // b&w

//--- Xenon Flash Property -----------------------

seq_set_prop_a_0 =
                    #WRITE_CONTROL(37 0200)
                    #WRITE_CONTROL(2E 0000) //target 0 
           					$d0064//pause 100 ms (Old 1000)
           					#WRITE_CONTROL(2E 0C4A) 
                    $s9 00 // flash disabled, use internal reg 9 as a flag for the flash property
                    ;

seq_set_prop_a_1 =  
            //#WRITE_CONTROL(37 0200) //15 fps 
            //#WRITE_CONTROL(2E 0000) //target 0 
           //$d03E8 //pause 1000 
           //#WRITE_CONTROL(2E 0C4A)
                    $s9 01 // flash enabled, use internal reg 9 as a flag for the flash property
                    ;

seq_set_prop_a_2 =  //Property a 2 only used for ITP
										#WRITE_IFP(A1 0064) 
                    #WRITE_IFP(A4 003C)
                    #WRITE_IFP(AE C009)
										#WRITE_CONTROL(CC 0002)
										#WRITE_CONTROL(CB 0001)
                    $s9 01 // flash enabled, use internal reg 9 as a flag for the flash property              
                    ;


// --- Test Pattern property 30 (1e) -------------
//  for ITP
//  0 => off, others
//------------------------------------------------
seq_set_prop_1e = #WRITE_IFP(#REGISTER_MODIFY(48, $b1 %0 0 3))
  $s0 %0
      $c0 00 #WRITE_IFP(06 64 8E)
  $cl        #WRITE_IFP(06 b0 1e)
             #WRITE_CONTROL(62 10 10)
             #WRITE_IFP(09 02 19)
  $cx;



// SET SIZES
// -----------------------------------
//===============================================
//VF mode
//=============================================

// For viewfind turn off JPEG and set input size to 128x96
seq_vf_config_20=   #WRITE_IFP(A6 0280) 
            #WRITE_IFP(A9 01E0) 
              #WRITE_IFP(A7 0080) 
            #WRITE_IFP(AA 0060)
                #WRITE_IFP(AE 0C09)
                #FRAME_RATE_AUTO
                $c9 01
                    #WRITE_CONTROL(37 0120) //15 fps 
            #WRITE_CONTROL(2E 0000) //target 0 
           $d0064//pause 100 ms ms (Old 1000) 
           #WRITE_CONTROL(2E 0C4A)
                  $cl    
                    
                    
                  $cx
                    $"DORISsetuptest_VF32"    
                    ;

// For viewfinder and set input size to 128x160
seq_vf_config_21=   #WRITE_IFP(A6 0280)  
                    #WRITE_IFP(A9 01E0) 
                    #WRITE_IFP(A7 0080) 
                    #WRITE_IFP(AA 00A0)
                    #WRITE_IFP(AE 0C09)
                    #FRAME_RATE_AUTO
                    $c9 01
                    #WRITE_CONTROL(37 0120) //15 fps 
            #WRITE_CONTROL(2E 0000) //target 0 
           $d0064//pause 100 ms (Old 1000 ms) 
           #WRITE_CONTROL(2E 0C4A)
                  $cl    
                    
                  $cx
                    ;

// For viewfinder and set input size to 80x60
seq_vf_config_30=   #WRITE_IFP(A6 0280)  
                    #WRITE_IFP(A9 01E0) 
                    #WRITE_IFP(A7 0050) 
                    #WRITE_IFP(AA 003C)
                    #WRITE_IFP(AE 0C09)
                    #FRAME_RATE_AUTO
                    $c9 01
                    #WRITE_CONTROL(37 0120) //15 fps 
            #WRITE_CONTROL(2E 0000) //target 0 
           $d0064//pause 100 ms (Old 1000  ms)
           #WRITE_CONTROL(2E 0C4A)
                  $cl    
                    
                  $cx
                    ;

// For viewfinder and set input size to 80x60
seq_vf_config_31=   #WRITE_IFP(A6 0280)  
                    #WRITE_IFP(A9 01E0) 
                    #WRITE_IFP(A7 0050) 
                    #WRITE_IFP(AA 0065)
                    #WRITE_IFP(AE 0C09)
                    #FRAME_RATE_AUTO
                    $c9 01
                    #WRITE_CONTROL(37 0120) //15 fps 
            #WRITE_CONTROL(2E 0000) //target 0 
           $d0064//pause 100 ms (Old 1000 ms) 
           #WRITE_CONTROL(2E 0C4A)
                  $cl    
                    
                  $cx
                    ;

//==============================================
// VR mode
//==============================================

seq_vf_config_41=   #WRITE_IFP(A6 0280) 
            #WRITE_IFP(A9 01E0)   
                    #WRITE_IFP(A7 0080) 
                    #WRITE_IFP(AA 0060)
                    #WRITE_IFP(AE 0C09)
                    #FRAME_RATE_14
                    ;
                    
seq_vf_config_42=   #WRITE_IFP(A6 024A) 
            #WRITE_IFP(A9 01E0)   
                    #WRITE_IFP(A7 00B0) 
                    #WRITE_IFP(AA 0090)
                    #WRITE_IFP(AE 0B09)
                    #FRAME_RATE_14
                    ;
                                     
seq_vf_config_43=   #WRITE_IFP(A6 0280) 
            #WRITE_IFP(A9 01E0)   
                    #WRITE_IFP(A7 0080) 
                    #WRITE_IFP(AA 0060)
                    #WRITE_IFP(AE 0C09)
                    #FRAME_RATE_10
                    ;
                    
seq_vf_config_44=   #WRITE_IFP(A6 024A) 
            #WRITE_IFP(A9 01E0)  
                    #WRITE_IFP(A7 00B0) 
                    #WRITE_IFP(AA 0090)
                    #WRITE_IFP(AE 0B09)
                    #FRAME_RATE_10
                    ;

//==============================================================
// SS mode
//==================================================================

seq_ss_config_1=   
                    #WRITE_IFP(A1 0280) 
                    #WRITE_IFP(A4 01e0)
                    #WRITE_IFP(AE C009);

seq_ss_config_2=    
                    #WRITE_IFP(A1 0140) 
                    #WRITE_IFP(A4 00F0)
                    #WRITE_IFP(AE C009);

seq_ss_config_3=   
                    #WRITE_IFP(A1 00A0) 
                    #WRITE_IFP(A4 0078)
                    #WRITE_IFP(AE C009);

seq_ss_config_4=   
                    #WRITE_IFP(A1 0064) 
                    #WRITE_IFP(A4 003C)
                    #WRITE_IFP(AE C009);

seq_ss_config_d=    
                    #WRITE_IFP(A1 0280) 
                    #WRITE_IFP(A4 01e0)
                    #WRITE_IFP(AE C009);




// Init sequence 
seq_init=           $c9 01 //If flash attached at camera startup then keep flag set
$s9 01
$cl
$s9 00 //Else unset flag
$cx                            //Flash disabled, use internal reg 9 as a flag for the flash property
          $s8 00                         //Flash fire flag disabled => no flash fired. Reg 8 as flag.  
                 
                    #WRITE_IFP(A5 4000)

                    #WRITE_IFP(A8 4000) 

                    #WRITE_IFP(AF 0000)
 
                    #LENS_CORRECTION_NORMAL

                    #COLOR_CORRECTION
                    
                    #FRAME_RATE_AUTO  

                    #WRITE_CONTROL (24 6018)	//AUTO (DESACTIVADO)
                    #WRITE_CONTROL (22 B078)
                    #WRITE_CONTROL (23 9058)
                    $sB 00
                    #LUMA_SET_SS
 		    #WRITE_IFP(#REGISTER_MODIFY(E2,$b1 00 0 3)) 	//normal
		    #WRITE_CONTROL(2E 0240)
		    $sA 04 #WRITE_IFP(05 000C)  		       // Sharp =100
		    #WRITE_IFP(25 002D)					//color 150%
		    #seq_set_prop_1_0

                    #ROW_NOISE_REDUCTION

                    #PIXEL_NOISE_REDUCTION
                  
                    #WRITE_SENSOR(#REGISTER_MODIFY(20,$b1 00 0 1))


                    ;


// Switch state 00 = VF 84 = SS
seq_vf_start= 

$"DORISsetuptest_VF_start"
;

seq_vf_stop=
$"DORISsetuptest_VF_stop"
;

seq_ss_start=;

seq_ss_take=                  
                  #SEQ_FLASH_LIMIT $"DORIS_SEQ_FLASH_LIMIT"
                  $"DORIS_Status_int_reg_2check_8_%8"
                  $c8 01 //01 Should the flash be fired?
										#SEQ_SET_FLASH $"DORIS Flash fired"  //Set flash properties
										#WRITE_CONTROL(CC 0002)
										#WRITE_CONTROL(CB 0001)
										$d0020 //Pause: 0x40/2
 									$cl 
										#WRITE_CONTROL(CC 0000)
										#WRITE_CONTROL(CB 0001)
      							$d007F                        //Pause : 0xFF/2 for 13MHz
  								$cx
									

$d0064
;

seq_ss_stop=
#WRITE_CONTROL(CC 0004)
#WRITE_CONTROL(CB 0001)
; 
Avatar de Usuario
matiaz
Colaborador
Colaborador
Mensajes: 7676
Registrado: Sab Sep 08, 2007 6:55 pm
Ubicación: Pergamino - Bs As
Agradecido: 0
Agradecimiento recibido: 0

Re:[DUDA] Editar Camdriver

Mensaje por matiaz »

//=========================================================
//Support resolution
//=========================================================

                    // VR MODE
                 

  41[80,60,3E8],            //  128 x 96    Viewfinder  Video record SQCIF 10FPS
  42[B0,90,3E8],            //  176 x 144  Viewfinder  Video record QCIF 10 FPS
  43[80,60,2BC],            //  128 x 96    Viewfinder  Video record SQCIF 7,5 FPS
  44[B0,90,2BC],            //  176 x 144  Viewfinder  Video record QCIF  7,5 FPS
Responder