Kives Joined: Apr 19, 2009 Posts: 1 PM |
Nordic R1DA035 has been out for a while.
This is the driver from the 035:
// Kate camera driver setup file
//************************************************************************
//
//
// Revision history:
//
// 2.1 Fix for DMS00508656 GTCCPRTC: phone crashes in video view finder when press # shortcut key.
// 2008.12.15
// 2.0 Fix for Yellow pictures cause by Autoflash fix. 2008.11.28
// 1.9 Fix for DMS00444457 2008.11.24
// Fix for DMS00436227
// 1.8 Fix for DMS00441559 2008.10.22
// [Camera] The zoomlevel is not reseted when changing between still mode and video mode
//
// 1.7 Add Property 0x17 into property table. 2008.09.01
// 1.6 Fix for DMS00415100. 2008.08.26
// Fix for DMS00409838
// Add Auto Flash threshold value to property 23.
// 1.5 Add cam_vf_buffer= 0006 for semi transparancy. 2008.08.12
// 1.4 Fix for video recording application errors. 2008.07.23
// 1.3 DMS00393553 Camera: [Kate] There is no differense between a nightmode on or off
// DMS00393566 Camera: [Kate] The framerate is 5 fps instead of 7.5 fps
// when recording a video with night mode on 2008.07.21
// 1.2 Set reg07 as Auto draft flag to improve startup speed. 2008.07.21
// 1.1 Change GPIO setting according to HB108 spec. 2008-05-04
// 1.0 First release based on Ning version 2.6 2008-04-14
// Change power setting according to Kate HW spec.
//
//*****************************************************************************
//---------------------------------------------------------
// Description of internal register usage:
//
// a: used to select EXIF parameter to read
// e: used to remember last size id for snapshot burst mode
//
//---------------------------------------------------------
//Information section
//=========================================================
info_name=MCB850;
info_vendor=Sony;
info_major_ver=2;
info_minor_ver=1; // use HEX foramt
//Camera characteristics section
//=========================================================
//=========================================================
// Kate 3M camera Power on sequence
//=======================================================
cam_power_on_0 = 5, 0, 00, 1, 05; // Active Main Camera RST pin, delay 5ms
cam_power_on_1 = 5, 2, 91, 1, 05; // Videocamera standby (AppGPIO_09 = GPIO_91)
cam_power_on_2 = 5, 2, 96, 1, 02; // Vcam_SA (AppGPIO_14=GPIO_96) delay 2ms
cam_power_on_3 = 5, 2, 85, 1, 00; // Vcam_Core_AF (AppGPIO_05=GPIO_85)
cam_power_on_4 = 5, 2, 95, 1, 05; // Vcam_IO (AppGPIO_13=GPIO_95) delay 5ms
cam_power_on_5 = 5, 3, 09, 32C8, 05; // Turn on 13 MHz clock, delay 5ms
cam_power_on_6 = 5, 0, 00, 0, 32; // Disable RST , delay 50ms
//=========================================================
// Kate 3M camera Power off sequence
//=======================================================
cam_power_off_0 = 5, 0, 00, 1, 10; // Active Main Camera RST pin, delay 16ms
cam_power_off_1 = 5, 3, 09, 0, 05; // Turn off 13 MHz clock and wait 5 ms
cam_power_off_2 = 5, 2, 85, 0, 00; // Vcam_Core_AF (AppGPIO_05=GPIO_85)
cam_power_off_3 = 5, 2, 95, 0, 05; // Vcam_IO (AppGPIO_13=GPIO_95) delay 5ms
cam_power_off_4 = 5, 2, 96, 0, 05; // Vcam_SA (AppGPIO_14=GPIO_96) delay 5ms
cam_power_off_5 = 5, 2, 91, 0, 05; // Release Videocamera standby (AppGPIO_09 = GPIO_91)
//=========================================================
//================================================
// DATA
//================================================
// TODO: define any of these that are needed:
// cam_i2c_clock_freq=
// The desired I2C clock frequency in kHz (hexadecimal). Default is 100 kHz
// cam_data_offset=
// The number of bytes in the data stream to be
// skipped before the image data appears when
// taking a snapshot (hexadecimal)
// cam_frame_skip=
// The number of frames to be skipped before the
// final image frame is captured when taking a
// snapshot (hexadecimal)
// cam_ss_retries=
// The number of times to retry taking a snapshot
// cam_ss_jpeg_buf_size_1=
// cam_ss_jpeg_buf_size_2=
// cam_ss_jpeg_buf_size_3=
// cam_ss_jpeg_buf_size_4=
// Suggested snapshot buffer size in bytes (hexadecimal)
// cam_post_processing_x=
// Post processing for size configuration x:
// 0 = 0 degrees rotation
// 1 = 90 degrees clockwise rotation
// 2 = 180 degrees clockwise rotation
// 3 = 270 degrees clockwise rotation
//================================================
cam_i2c_address=1F;
cam_vf_clock_freq=9,32C8; // clock ID 9 is SYSCON_SYSCLK_13MHZ,Clock #9 on, frequency 13MHz
cam_ss_clock_freq=9,32C8; // clock ID 9 is SYSCON_SYSCLK_13MHZ,Clock #9 on, frequency 13MHz
cam_i2c_clock = ; // Default 100 kHz
cam_vf_format=B100;
cam_ss_format=0001; // JPEG default
cam_ss_format_10 = B100; // YCbCr
cam_ss_format_11 = B100; // YCbCr
cam_data_offset=2; // JPEG default
cam_data_offset_10 = 0; // YCbCr
cam_data_offset_11 = 0; // YCbCr
cam_vf_sync=5;
cam_ss_sync=5;
cam_vf_buffer= 0006; // YUV420 Separated
cam_ss_retries=9;
//-- Rotation setting
cam_post_processing_20 = 1; // viewfinder rotation
cam_post_processing_25 = 1; // videotelephony
cam_post_processing_26 = 1; // videotelephony
cam_post_processing_29 = 1; // video recording
//-- JPEG buffer sizes
cam_ss_jpeg_buf_size_1=25800; // 150 KB buffer for 640x480 snap
cam_ss_jpeg_buf_size_2=64000; // 400 KB buffer for 1280x960 snap
cam_ss_jpeg_buf_size_4=96000; // 600 KB buffer for 1632x1244 snap
cam_ss_jpeg_buf_size_5=E1000; // 900 KB buffer for 2048x1536 snap
//================================================
// SUPPORTED SIZES
//================================================
//-- JPEG snapshot resolutions
// 1 = 640 x 480 2 = 1280 x 960
// 4 = 1632 x 1224 5 = 2048 x 1536
//-- YUV422 snapshot resolutions
// 10 = 320 x 240 11 = 640 x 480
//-- Viewfinder resolutions
// 20 = 320 x 240
// 25 = 96 x 128
// 26 = 144 x 176
// 29 = 144 x 176
// 2a = 320 x 240
// 2b = 320 x 240
// 2c = 320 x 240
// 2f = 320 x 240
//=================================================
sup_sizes =
1[280,1E0,0], // SS 640 x 480 JPEG VGA
2[500,3C0,0], // SS 1280 x 960 JPEG 1M
4[660,4C8,0], // SS 1632 x 1224 JPEG 2M
5[800,600,0], // SS 2048 x 1536 JPEG 3M
10[140, F0,0], // SS 320 x 240 YCbCr
11[280,1E0,0], // SS 640 x 480 YCbCr
20[140,F0,BB8], // VF 320 x 240 YCbCr 30 fps
25[60,80,4B0], // VT 96 x 128 YCbCr 12 fps max
26[90,B0,4B0], // VT 144 x 176 YCbCr 12 fps max
29[90,B0,3E8], // VR 144 x 176 YCbCr 10 fps fixed
2a[140,F0,BB8], // VR 320 x 240 YCbCr 30 fps fixed
2b[140,F0,5DC], // VR 320 x 240 YCbCr 15 fps fixed
2c[140,F0,2EE], // VR 320 x 240 YCbCr 7.5 fps fixed
2f[140,F0,BB8], // VF 320 x 240 YCbCr 30 fps
;
//=========================================================
// Platform registers used
//=========================================================
// 0, Used in CLEAR_EVENT_FIFO,
// WAIT_FOR_MODE,
// jpeg_qtable_selector
// WAIT_FOR_TRIG
// Property 23 Xenon Flash Required
// 1, Used in SET_REG,
// CLEAR_EVENT
// SEND_COMMAND,
// jpeg_qtable_selector
// 2, Used in CLEAR_EVENT (Event info stored),
// CLEAR_EVENT_FIFO,
// WAIT_FOR_MODE,
// jpeg_qtable_selector
// 3, Used in CLEAR_EVENT (Event id stored),
// CLEAR_EVENT_FIFO,
// WAIT_FOR_MODE,
// 4, Used in READ_REG (value stored)
// Property 6
// Property 23 Xenon Flash Required
// 5, Used in Property 6
// Property 23
// UPDATE_MIN_FRMRATE
// UPDATE_ISO
// UPDATE_PHOTO
// UPDATE_WB
// Property 10
// 6, Used for burst mode. 0 = OFF, 1 = ON
// 7, JPEG -> draft auto 1 = Done 0 = Not done
// 8, Used for face dectection input, which is stored in reg g, h, i and f.08
// 9, 0:Init 1:ReadyForBurstOutput 2:WaitForEV_RECORD_STATUS 3:BurstOutput
// a,
// b, Used in Property 29, BestPic operation
// seq_pv_verify
// c, Used to remember ISO setting since one has to change AE_MODE
// to "auto" for IS.
// d, Used to remember LED flash mode (property 23)
// e, Used for picture readout, 0 => normal, burst 1 => read out pict 1 ...
// f, Used as 32 flags:
// bit 0, Image stabilization, 1 = ON, 0 = OFF
// bit 1, High sensitivity, 1 = ON, 0 = OFF
// bit 2, Any draft mode, 1 = YES, 0 = NO
// bit 3, Snapshot format, 1 = JPEG, 0 = YCbCr
// bit 4, Xenon flash needed, 1 = Yes, 0 = NO
// bit 5, JPEG compression 1 = Normal, 0 = Low compression
// bit 6, Flash was used 1 = True, 0 = False
// bit 7,
// bit 8, Face detection 1 = ON, 0 = OFF
// bit 9, Focus range 1 = Full, 0 = Normal
// bit A, Photometry spot 1 = ON, 0 = OFF
// bit B,
// g, Used for x-coordinate of AF-area
// h, Used for y-coordinate of AF-area
// i, Used for width of AF-area
//================================================
// MACROS
//================================================
// MCB850 UI COMMAND
// Send command 0x3E 0x06 0x02 0x00 0x01 CommandParameter Command
// Command replay 0x3F 0x04 Cause CommandParameter Command
// Polling 0x3E 0x05 0x01 0x00 0x03 0x03
// Receive Event 0x3F 0x04 Cause StatusParameter Status
// Set parameter 0x3E 0x05 0x02 0x00 REG Parameter
// Read parameter 0x3E 0x05 0x01 0x00 REG 0x01
// 0x3F 0x02 Parameter
// Set INT_RELEASE Register 0x3E 0x05 0x02 0x00 0x06 0x01
//================================================
// Sets register to value SET_REG(REG,VAL)
SET_REG = 05 02 00 !0 !1 $f $r2 01 $d0002;
// Reads register READ_REG(REG,$r2 01)
READ_REG = 05 01 00 !0 01 $f !1 ;
CLEAR_EVENT = // Clears event register. FIFO is not cleared
05 01 00 03 03 $f // Packet length, access code, id number, reg to read (int source), req packet length
$r4 1 123 $d0002 // Put Int_source in reg 1, Event_info in reg 2 and Event_id in reg 3
$c3 00 // If internal register 3 holds 0 (means the queue was empty)
$"CAMDRIVER0: Queue_was_empty"
$cl
$"CAMDRIVER0: Cleared_Int_Source_%1_Event_Info_%2_Event_ID_%3"
$cx
#SET_REG(06,03) // Clears the event
;
CLEAR_EVENT_FIFO = // Clears the event FIFO
$"CAMDRIVER0: Clear_event_fifo"
$s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start)
[ 0 ff // Loop 0xff times or quit looping when internal register 0 holds 0
#CLEAR_EVENT // Read the event and clear it
$c3 00 // If internal register 3 holds 00 (= if EVENT_ID equals 00, meaning the queue is empty)
$s0 00 // Set internal register 0 to 0x00 in order to exit the loop
$cx
]
;
WAIT_FOR_TRIG = // Listen to TRIG APP GPIO_02=GPIO_82
$h 0 82 5 1000 // Listen to trig on Application GPIO_02 = TRIG
$c0 00
$"CAMDRIVER0: TRIG_Timeout" // No event occured
$cl
$"CAMDRIVER0: TRIG_Recieved" // Event occured
$cx
;
// Only send command, no reply is read out
COMMAND = 06 02 00 01 !1 !0 $f $r3 012 $d0002; // Change delay time from 5ms to 2ms.
// Waits for signal on TRIG, and clear the event register when it has arrived
CAPTURE_EVENT =
#WAIT_FOR_TRIG
#CLEAR_EVENT
;
// This sends a command and waits for reply
// In most cases this is the command that should be used, isn't it?
COM_EVENT =
#CLEAR_EVENT_FIFO
#COMMAND(!0,!1)
#WAIT_FOR_TRIG
#CLEAR_EVENT
;
// Use poll instead of TRIG. It is difficult to use TRIG if reply
// and mode transfer comes to close
// Reads and clears events until the specified event occurs.
WAIT_FOR_MODE = // Syntax: WAIT_FOR_MODE($s4 Event_Identification)
$"CAMDRIVER0: Wait_for_mode"
!0 // "Execute" the first parameter
$s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start)
[ 0 ff // Loop 0xff times or quit looping when internal register 0 holds 0
#CLEAR_EVENT // Clear event. If the event id (which the CLEAR_EVENT-makro will store in
// internal register 2) is equal to 0xea (= EV_MODE_CHANGED)
$-3 r4 // Subtract the contents of internal register 4 from the contents of register 3 (EVENT_ID)
// and store the result in internal register 3
$c3 00 // If internal register 3 holds 0
$"CAMDRIVER0: Successfully_acknowledged_Event_ID_%4"
$s0 00 // Set internal register 0 to 0x00 in order to exit the loop
$cx // End if
]
;
WAIT_FOR_MODE_A = // Syntax: WAIT_FOR_MODE($s4 Event_Identification)
$"CAMDRIVER0: Wait_for_mode"
!0 // "Execute" the first parameter
$s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start)
[ 0 05 // Loop 0x05 times or quit looping when internal register 0 holds 0
#CLEAR_EVENT // Clear event. If the event id (which the CLEAR_EVENT-makro will store in
// internal register 2) is equal to 0xea (= EV_MODE_CHANGED)
$-3 r4 // Subtract the contents of internal register 4 from the contents of register 3 (EVENT_ID)
// and store the result in internal register 3
$c3 00 // If internal register 3 holds 0
$"CAMDRIVER0: Successfully_acknowledged_Event_ID_%4"
$s0 00 // Set internal register 0 to 0x00 in order to exit the loop
$cx // End if
]
;
// Used to change mode, TRIG is not used, instead event register is polled.
CHANGE_MODE =
#CLEAR_EVENT_FIFO
#SET_REG(06,03)
#COMMAND(!0,!1)
#WAIT_FOR_MODE($s4 ea)
#SET_REG(06,03)
;
CHANGE_MODE_A =
#CLEAR_EVENT_FIFO //Only used for Burst mode (4 times taking picture)
#SET_REG(06,03)
#COMMAND(!0,!1)
#WAIT_FOR_MODE_A($s4 ea) // Using 5 times loop to avoid long time waiting for 0xEA events.
#SET_REG(06,03)
;
// Used where HALF_RELEASE should be done
HALF_RELEASE =
$"CAMDRIVER0_Half-release"
#CLEAR_EVENT_FIFO
#SET_REG(06,03)
#COMMAND(31,03) //No AF, AE hold, ACC locked
#WAIT_FOR_MODE($s4 e9) //Wait for half release
#SET_REG(06,03)
;
READ_AF_STATUS=
05 01 00 03 03 $f $r4 4 4 4 5
$c5 E9 //Use halfrelease do AF operation, so change E6 -> E9
$cl
$s4 03
$cx
;
// Used in scene selection
UPDATE_WB =
$p5 01
$c5 00 // WB is auto?
$cl
$d0032 // Delay 50 milliseconds
$u01 // Update WB
$cx
;
UPDATE_PHOTO = // Updates photo metering
$p5 16
$c5 00 // Photo metering is not spot?
$cl
$u16 // Update photo metering => spot
$cx
;
UPDATE_MIN_FRMRATE = // Updates minimum framerate
$p5 10
$c5 03
#SET_REG(08,04) // DRAFT_MIN_FRMRATE 2 fps
$cl
#SET_REG(08,0A) // DRAFT_MIN_FRMRATE 5 fps
$cx
;
UPDATE_ISO = // Updates ISO
$p5 11
$c5 00 // ISO is auto
$cl
$u11 // Update ISO
$cx
;
CMD_END=$f $d0002; // Change delay time form 5ms to 2ms.
DOC_MODE = // Updates special doc scene settings
#COM_EVENT(55,02) // Increase contrast to 2
#COM_EVENT(56,08) // Increase sharpness to max (8)
#COM_EVENT(06,02) // Increase exposure to 2
#SET_REG(2B,04) // Setting AF range to Macro
#COM_EVENT(05,00)
;
NOT_DOC_MODE = // Reverses special doc scene settings
#COM_EVENT(02,00) // AE_AUTO
#COM_EVENT(55,00) // Reset contrast
#COM_EVENT(56,00) // Reset sharpness
#COM_EVENT(06,00) // Reset exposure
#SET_REG(2B,00) // Reset AF range to Normal
#COM_EVENT(05,00) // Set ISO to Auto.
;
TO_DRAFT = // Changes to draft (but not on display)
$cf.02 0 // If not draft
$sf.02 1 // Set draft flag to 1
$cl
$cx
;
DISP_REG =
$"CAMDRIVER0: REG00_%0_REG01_%1_REG02_%2_REG03_%3"
$"CAMDRIVER0: REG04_%4_REG05_%5_REG06_%6_REG07_%7"
$"CAMDRIVER0: REG08_%8_REG09_%9_REG0A_%A_REG0B_%B"
$"CAMDRIVER0: REG0C_%C_REG0D_%D_REG0E_%E_REG0F_%F"
;
DISP_GET_REG = //#COM_EVENT(72,00) // Update the registers, INFO_GET_DATA
#READ_REG(0E,$r2 3 3) // Put shutter(H, MSB) in reg 3
#READ_REG(0F,$r2 2 2) // Put shutter(L, LSB) in reg 2
#READ_REG(10,$r2 1 1) // Put ISO(H, MSB) in reg 1
#READ_REG(11,$r2 0 0) // Put ISO(L, LSB) in reg 0
$"CAMDRIVER0_GetEXIF1_%3_%2_%1_%0"
;
AUTO_AE_SETTING = #COMMAND(09,01) //Set AE_SPEED High.
#COMMAND(14,01) //Set CC_SPEED High.
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
//---------------------------------------------------------
//These two lines controls the locked frame rate in VR.
//Use them to test different settings!
//The value entered is the desired frame rate * 2.
//Example: 14 means 0x14 = 20 => frame rate 20 / 2 = 10 fps
VR_30_FR=3C; // 30 fps
VR_15_FR=1E; // 15 fps
VR_12_FR=18; // 12 fps
VR_10_FR=14; // 10 fps
VR_7_5_FR=0F; // 7.5fps
//================================================
// OTHER SEQ
//================================================
seq_init= // $d0014
$sf 00 // Set all flags to zero
$sf.05 1 // Normal JPEG compression
$sf.02 1 // Set draft flag to YES
$s7 01 // Quick start
$se 00 // Normal snapshot operation
$sd 00 // Flash mode "auto"
$s6 00 // Not in burst mode
$"CAMDRIVER0_CAMDRIVER0_init"
#CAPTURE_EVENT // e1 EV_CAM_READY
#CAPTURE_EVENT // ec EV_MUTE_OFF
#SET_REG(19,00) //JPEG continuos mode infinite
#SET_REG(0C,D0)
#SET_REG(0D,07) //JPEG retry time max 2 sec
#COMMAND(09,01) //Set AE_SPEED High.
#COMMAND(14,01) //Set CC_SPEED High.
;
seq_ping=;
//================================================
// PROPERTIES
//================================================
//
//Properties:
// 0 = Exposure Set Implemented
// 1 = White balance Set Implemented
// 2 = Flicker Mode Set Implemented
// 3 = Vertical mirror Set Implemented
// 4 = Horisontal mirror Set Implemented
// 5 = JPEG Compression level Set Implemented
// 6 = Zoom Set/Get Implemented
// 7 = Night mode Set Implemented
// 8 = Effects Set Implemented
// 9 = Focus mode Set Implemented
// a 10 = Focus operation Set/Get Implemented
// b 11 = Get Exif information 1 Get Implemented
// c 12 = Get Exif information 2 Get Implemented
// d 13 = LED support Set Implemented
// e 14 = Xenon Flash support Set NOT VALID FOR MCB 850
// f 15 = Optical zoom Set/Get NOT VALID FOR MCB 850
// 10 16 = Scenes Set Implemented
// 11 17 = ISO Set Implemented
// 12 18 = Low Framerate Mode Set Implemented
// 13 19 = Get face det.AF Set/Get Not Implemented
// 14 20 = Set AF area Set Implemented
// 15 21 =
// 16 22 = Photo Metering Set Implemented
// 17 23 = Xenon Flash Required Get NOT VALID FOR MCB 850
// 18 24 = Image Stabilization Set NOT VALID FOR MCB 850
// 19 25 = Continuous Zoom Set Implemented
// 1a 26 = Get zoom value Get Implemented
// 1b 27 = Snapshot operation Set NOT VALID FOR MCB 850
// 1c 28 =
// 1d 29 = Burst (BestPIC) Operation Set NOT VALID FOR MCB 850
// 1e 30 = ITP test (Test Pattern) Set Implemented
// 2,3 for FD test and 4 for temp test.
// 1f 31 = ITP test
// 20 32 = ITP test (Spot)
//================================================
sup_properties =
0[3,f,9], 1[0,6,0], 2[0,3,0], 3[0,3,0], 4[0,3,0],
5[0,9,0], 6[a,28,a], 7[0,1,0], 8[0,4,0], 9[0,4,0],
a[0,2,0], b[0,0,0], c[0,0,0], d[0,1,0], e[0,4,0],
f[0,1,0],10[0,7,0], 11[0,9,0], 12[0,ff,0],
14[0,FFFFFFFF,0],15[0,11,8],16[0,1,0],17[0,0,0],19[0,2,0],1c[0,1,0],
1d[0,3,0],1e[0,3,0], 1f[0,1,0],20[0,7,0]
;
//************************************************
// Property 0 Exposure ***
//************************************************
//--------------------------------------------------
// 3 => -2 EV, 9 => -(0) EV .... f => 2 EV
//---------------------------------------------------
//TBD
seq_set_prop_0 =
#TO_DRAFT
$s5 %0
$-5 09
#COM_EVENT(06,$w5)
;
//************************************************
// Property 1 White balance ***
//************************************************
//---------------------------------------------------
// 0 => Auto 1 => Tungsten 2 => Fluorescent
// 3 => Outdoor clear sky 4 => Outdoor cloudy
// 5 => All pull-in
//---------------------------------------------------
//TBD
seq_set_prop_1_0 = #TO_DRAFT #COM_EVENT(11,00);
seq_set_prop_1_1 = #TO_DRAFT #COM_EVENT(11,03);
seq_set_prop_1_2 = #TO_DRAFT #COM_EVENT(11,04);
seq_set_prop_1_3 = #TO_DRAFT #COM_EVENT(11,05);
seq_set_prop_1_4 = #TO_DRAFT #COM_EVENT(11,06);
seq_set_prop_1_5 = #TO_DRAFT #COM_EVENT(11,02);
//****************************************************
// Property 2 Flicker correction, ***
//****************************************************
// 0 => auto, 1 => 50 Hz, 2 => 60 Hz, 3 => disable
//
//---------------------------------------------------
seq_set_prop_2_0= #COM_EVENT(21,01); //Auto detect
seq_set_prop_2_1= #COM_EVENT(21,02); //50Hz detect
seq_set_prop_2_2= #COM_EVENT(21,03); //60Hz detect
seq_set_prop_2_3= #COM_EVENT(21,00); //Disable
//***************************************************
// Property 3 Vertical mirror, ***
//***************************************************
// 0->OFF, 1->ON
//---------------------------------------------------
seq_set_prop_3_0 = #COM_EVENT(52,00); // OFF 0b00000000 Capt/draft
seq_set_prop_3_1 = #COM_EVENT(52,0A); // ON 0b00001010 Capt/draft
//***************************************************
// Property 4 Horizontal mirror ***
//***************************************************
// 0->OFF, 1->ON
//---------------------------------------------------
seq_set_prop_4_0 = #COM_EVENT(52,00); // OFF 0b00000000 Capt/draft
seq_set_prop_4_1 = #COM_EVENT(52,05); // ON 0b00000101 Capt/draft
//***************************************************
// Property 5 JPEG compression ***
//***************************************************
// 0 => normal (High compression)
// 1 => fine (Low compression)
//
//---------------------------------------------------
seq_set_prop_5_0 = $sf.05 1; // Normal compression
seq_set_prop_5_1 = $sf.05 0; // Low compression
//*********************************************************
// Property 6 Zoom ***
//*********************************************************
// 10 => 1.0 x zoom, 11 => 1.1 x zoom, ... 22 => 2.2 x zoom
//---------------------------------------------------------
// TBD
seq_set_prop_6 =
#TO_DRAFT
#SET_REG(32,01) // ZM_SMTH_INTERVAL = 1
$s4 %0
$"CAMDRIVER0_Cam_mag_R4_%4"
// $ma 4 // Set zoom level y = -15x/11 + 77
// $*4 0F $/4 0B
// $s5 4D $-5 r4
$c4 0A $s5 3F $cl $cx // Use searching table replace formula.
$c4 0B $s5 3E $cl $cx
$c4 0C $s5 3C $cl $cx
$c4 0D $s5 3A $cl $cx
$c4 0E $s5 39 $cl $cx
$c4 0F $s5 37 $cl $cx
$c4 10 $s5 36 $cl $cx
$c4 11 $s5 34 $cl $cx
$c4 12 $s5 33 $cl $cx
$c4 13 $s5 32 $cl $cx
$c4 14 $s5 31 $cl $cx
$c4 15 $s5 30 $cl $cx
$c4 16 $s5 30 $cl $cx
$"CAMDRIVER0_Cam_mag_value_%5"
#SET_REG(32,3C) // ZM_SMTH_STEP = 60
#COM_EVENT(61,$w5)
;
seq_get_prop_6 =
#TO_DRAFT
#READ_REG(31,$r2 4 4) // Get zoom level x = -11y/15 + 56, TBD
// $*4 0B $/4 0F $s0 38
// $-0 r4
$c4 40 $s0 0A $cl $cx // Use seraching table replace formula.
$c4 3F $s0 0A $cl $cx
$c4 3E $s0 0B $cl $cx
$c4 3D $s0 0B $cl $cx
$c4 3C $s0 0C $cl $cx
$c4 3B $s0 0C $cl $cx
$c4 3A $s0 0D $cl $cx
$c4 39 $s0 0E $cl $cx
$c4 38 $s0 0E $cl $cx
$c4 37 $s0 0F $cl $cx
$c4 36 $s0 10 $cl $cx
$c4 35 $s0 10 $cl $cx
$c4 34 $s0 11 $cl $cx
$c4 33 $s0 12 $cl $cx
$c4 32 $s0 13 $cl $cx
$c4 31 $s0 14 $cl $cx
$c4 30 $s0 15 $cl $cx
$c4 2F $s0 15 $cl $cx
$s1 00 $s2 00 $s3 00
$"CAMDRIVER0_Read_mag_value_%0"
;
//******************************************
// Property 7 Night mode, ***
//******************************************
// TBD
seq_set_prop_7_0=
$"CAMDRIVER0_property_7_0"
;
seq_set_prop_7_1=
$"CAMDRIVER0_property_7_1"
;
//***************************************************
// Property 8 Effects ***
//***************************************************
//
// 0 => normal, 1 => negative, 2 => solarize
// 3 => sepia, 4 => black&white, //inverted sepia and negative B&W
//---------------------------------------------------
//TBD
seq_set_prop_8 =
#TO_DRAFT
#COM_EVENT(53,%0)
;
//*********************************************
// Property 9 Focus setting, ***
//*********************************************
// 0--Nomal
// 1--Full range
// 4--Macro
// TBD
seq_set_prop_9 =
#TO_DRAFT
#SET_REG(2B,%0)
;
//************************************************
// Property 10 Focus operation, ***
//************************************************
//------------------------------------------------
// 0 => Stop AF scan and hold position
// 1 => Start AF scan
// 2 => Stop AF and go to infinity
// Return values:
// 3 Portrait 2 => Landscape
// 3 => Night 4 => Party 5 => Beach/Snow
// 6 => Sport
// Gives sensor value:
// 0 => normal 1 => Portrait 2 => Beach/Snow
// 3 => Party 4 => Night 5 => Sport
// 6 => Landscape 7 => Documents (Added by SEMC)
//
// 0 => Normal
// 1 => Portrait
// 2 => Landscape
// 3 => Night scene
// 4 => Night portrait (Custom scene)
// 5 => Beach & snow
// 6 => Sports
// 7 => Document (Custom scene)
// 8 => Night mode
//--------------------------------------------------------------------
seq_set_prop_10_0 = // Normal
#TO_DRAFT
#COM_EVENT(51,00) // Auto scene
#UPDATE_WB
#UPDATE_PHOTO
#NOT_DOC_MODE // Must be called before UPDATE_ISO
#UPDATE_ISO
;
seq_set_prop_10_1 = // Portrait
#TO_DRAFT
#COM_EVENT(51,01) // Portrait scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_2 = // Landscape
#TO_DRAFT
#COM_EVENT(51,06) // Landscape scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_3 = // Night
#TO_DRAFT
#COM_EVENT(51,04) // Night scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_4 = // Night portrait. TBD
#TO_DRAFT
#COM_EVENT(51,03) // Party scene
#UPDATE_WB
#NOT_DOC_MODE;
seq_set_prop_10_5 = // Beach & snow
#TO_DRAFT
#COM_EVENT(51,02) // Beach & snow scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_6 = // Sports
#TO_DRAFT
#COM_EVENT(51,05) // Sports scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_7 = // Document
$"CAMDRIVER0: Documents settings"
#TO_DRAFT
#COM_EVENT(04,00) // AE Auto
#COM_EVENT(51,07) // Custom scene
#UPDATE_WB
#DOC_MODE
;
//************************************************
// Property 17 ISO, ***
//************************************************
//
// 0 => Auto 1 => 100
// 2 => 200 3 => 400
//
//
//---------------------------------------------------
seq_set_prop_11_0 = // Auto
#TO_DRAFT
$sc 00
#COM_EVENT(05,00)
;
seq_set_prop_11_1 = // ISO 100
#TO_DRAFT
$sc 01
#COM_EVENT(05,01)
;
seq_set_prop_11_2 = // ISO 200
#TO_DRAFT
$sc 04
#COM_EVENT(05,04)
;
seq_set_prop_11_3 = // ISO 400
#TO_DRAFT
$sc 07
#COM_EVENT(05,07)
;
//************************************************
// Property 18 Low Framerate Mode ***
//************************************************
// 0 => off 1=> on
//------------------------------------------------
seq_set_prop_12_0 = // Restore framerate
$z5 // Put res id in reg 5
$c5 29 // If res id 0x29
#SET_REG(08,#VR_10_FR) // DRAFT_FRMRATE 10 fps
$cl $cx
$c5 2c // If res id 0x2c
#SET_REG(08,#VR_7_5_FR)// DRAFT_FRMRATE 7.5 fps
$cl $cx
$c5 25 // If res id 0x25
#SET_REG(08,#VR_12_FR) // DRAFT_FRMRATE 12 fps
$cl $cx
$c5 26 // If res id 0x26
#SET_REG(08,#VR_12_FR) // DRAFT_FRMRATE 12 fps
$cl $cx
$c5 2b // If res id 0x2b
#SET_REG(08,#VR_15_FR) // DRAFT_FRMRATE 15 fps
$cl // Else
#SET_REG(08,#VR_30_FR) // DRAFT_FRMRATE 30 fps
$cx
#CHANGE_MODE(34,01)
;
seq_set_prop_12_1 = // Decrease framerate
#SET_REG(08,#VR_7_5_FR) // DRAFT_MAX_FRMRATE 7,5 fps
#CHANGE_MODE(34,01)
;
//************************************************
// Property 19 Get Face Detection Info ***
//************************************************
//
//
//
//---------------------------------------------------
seq_get_prop_13= ;
//************************************************
// Property 20 Set Autofocus area ***
//************************************************
//
//
//
//---------------------------------------------------
seq_set_prop_14 = // Set AF window
// $"CAMDRIVER0: Property_20_start"
$s8 00
$s8 %0 $mg 8 // Put H-position in reg g
$s8 %1 $mh 8 // Put V-position in reg h
$s8 %2 $mi 8 // Put Witdth and height of AE in reg i
$s8 %3 // Put FD ON/OFF
$c8 00 // FD Off?
#SET_REG(42,00) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,00) // SCAN_AF_AREA_OFFSET_V
#COMMAND(02,00) // AE_MODE = 0x00
$cl // Else FD ON
$cf.0a 1 // Spot ON?
#SET_REG(42,00) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,00) // SCAN_AF_AREA_OFFSET_V
#COMMAND(02,00) // AE_MODE = 0x00
$cl
// #SET_REG(8D,01) // Open AE Window, For debug
// #COM_EVENT(34,01)
#SET_REG(42,$wg) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,$wh) // SCAN_AF_AREA_OFFSET_V
#SET_REG(44,$wi) // AE_AREA_HALF_SIZE_H
#SET_REG(45,$wi) // AE_AREA_HALF_SIZE_V
#COMMAND(02,01) // AE_MODE = 0x01 (Start arbitrary frame mode)
$cx
$cx
// $"CAMDRIVER0: Property_20_stop"
;
//************************************************
// Property 21 ***
//************************************************
//
//
//
//---------------------------------------------------
seq_set_prop_15 = ;
//**************************************************
// Property 22 Photo metering ***
//**************************************************
// 0 => Multi Mode 1 => Spot Mode
//--------------------------------------------------
seq_set_prop_16_0 =
#TO_DRAFT
#COM_EVENT(08,00)
$sf.0A 0 // Spot flag OFF
; // Multimode
seq_set_prop_16_1 =
#TO_DRAFT
#COM_EVENT(08,01)
$sf.0A 1 // Spot flag ON
; // Spot
//**************************************************
// Property 23 Xenon Flash Required
//**************************************************
// This property also changes scenes when flash is used.
// Return values: 0 = No flash, 1 = flash
seq_get_prop_17 =
$"CAMDRIVER0: Start ---- Check if flash is needed"
#AUTO_AE_SETTING
$s0 00 // Initialize flash return value to No flash.
$sf.06 0 // Initialize flash flag
#COM_EVENT(72,00) // Update the registers
#READ_REG(29,$r2 4 4) // Read AE-value (LSB)in camera reg 29
#READ_REG(2a,$r2 5 5) // Rdad AE-value (MSM)in camera reg 2a
$"CAMDRIVER0:AE_LEVEL_%5_%4_h"
$cg5 23
#COM_EVENT(13,00) //Turn off cc_offset.
#SET_REG(3A,00) //AE_LED_Offset set to 0.
#SET_REG(3B,00)
#COM_EVENT(5A,00) //Force LED Fill Light Mode
$s0 00 // Return 0, no need flash
$sd 00
$cl
$cs4 55
#SET_REG(3A,00) //AE_LED_Offset set to 04.
#SET_REG(3B,04)
// #COM_EVENT(13,01) //Turn on cc_offset
#SET_REG(3c,2D) //CC_R_Offset & CC_B_Offset
#SET_REG(3d,54)
#COM_EVENT(5A,01) //Force LED Fill Light Mode
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,1C) // Exposure time 1/10
$s0 01 // Return 1, need flash
$sd 01 // Exposure adjustment, Scense change
$cx
$cx
$s1 00 $s2 00 $s3 00
$"CAMDRIVER0: End ----- Check if flash needed:_returned:_%0"
;
//**************************************************
// Property 24 Image stabilization ***
//**************************************************
// 0 => off 1=> on
//--------------------------------------------------
seq_set_prop_18_0 =;
seq_set_prop_18_1 =;
//***************************************************
// property 25 Continuous Zoom ***
//***************************************************
// 0 =>Stop continuous zoom
// 1 =>Start continuous zoom in
// 2 =>Start continuous zoom out
//---------------------------------------------------
seq_set_prop_19_0 = // Stop
$"CAMDRIVER0: Property_19_0"
#TO_DRAFT
#COM_EVENT(61,44)
;
seq_set_prop_19_1 = // Zoom in
$"CAMDRIVER0: Property_19_1"
#TO_DRAFT
#SET_REG(32,01) // ZM_SMTH_STEP = 1
#COM_EVENT(61,2F) // Fix to 2.13x
;
seq_set_prop_19_2 = // Zoom out
$"CAMDRIVER0: Property_19_2"
#TO_DRAFT
#SET_REG(32,01) // ZM_SMTH_SPEED = 1
#COM_EVENT(61,3F)
;
//***************************************************
// property 26 Continuous zoom level ***
//***************************************************
seq_get_prop_1a =
// #TO_DRAFT
// #READ_REG(31,$r2 4 4) // Get zoom level in percent 1-100
// $s0 63 $*0 40 $/0 r4 $-0 54
// $/0 0F $s3 00 $s2 00 $s1 00
;
//**************************************************
// property 27 Snapshot operation ***
//**************************************************
// 0 = Still Capture mode/IS Still Capture mode
// 1 = Burst output. Read out picture 1
// .
// .
// 9 = Burst output. Read out picture 9
//--------------------------------------------------
seq_set_prop_1b =;
//**************************************************
// property 28 BestPic image size ***
//**************************************************
//
//--------------------------------------------------
seq_set_prop_1c =;
//**************************************************
// property 29 Burst(BestPic Operation) ***
//**************************************************
//**************************************************
// Test pattern, property 30 ****
//**************************************************
// 0 => Reset 1 => test pattern 2...4 => temp test
//--------------------------------------------------
seq_set_prop_1e_0 = $gr 1 // Reset
$d0014
$gr 0
$d0140; // Delay 320 ms
seq_set_prop_1e_1 = 03 55 AA $f $r2 01 $d0005 // Testpattern
08 04 80 0C 04 00 01 00 $f $r2 01 $d0005
08 04 82 0C 04 00 05 00 $f $r2 01 $d0005;
seq_set_prop_1e_2 = // Test face detection ON
$sg 74 // Put H-position in reg g 137
$sh 48 // Put V-position in reg h 73
$si 05 // Put Witdth and height of AE in reg i
$sj 01 // Put FD ON/OFF in reg j
$cj 00
$sf.08 0 // FD OFF
$cl
$sf.08 1 // FD ON
$cx
$"CAMDRIVER0: H=_%g_V=_%h_AE=_%i_Flag=_%j"
#SET_REG(42,$wg) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,$wh) // SCAN_AF_AREA_OFFSET_V
#SET_REG(44,$wi) // AE_AREA_HALF_SIZE_H
#SET_REG(45,$wi) // AE_AREA_HALF_SIZE_V
#COM_EVENT(02,01) // AE_MODE = 0x1 (Start arbitrary frame mode.)
// #COM_EVENT(02,00) // AE_MODE = 0x0 (End arbitrary frame mode.)
;
seq_set_prop_1e_3 = // Face detection OFF
$sf.08 0 // FD OFF
#COM_EVENT(02,00) // AE_MODE = auto
;
//***************************************************
// Property 31, only for tests
//***************************************************
seq_set_prop_1f_0 =
$"CAMDRIVER0: Start ---- Check if flash is needed"
$s0 00 // Initialize flash return value to No flash.
$sf.06 0 // Initialize flash flag
#COM_EVENT(72,00) // Update the registers
#READ_REG(29,$r2 4 4) // Read AE-value (LSB)in camera reg 29
#READ_REG(2a,$r2 5 5) // Rdad AE-value (MSM)in camera reg 2a
$"CAMDRIVER0:AE_LEVEL_%5_%4_h"
$cg5 23
$s0 00 // Return 0, no need flash
$cl
$cs4 55
$s0 01 // Return 1, need flash
// Exposure adjustment, Scense change
$cx
$cx
$s1 00 $s2 00 $s3 00
$"CAMDRIVER0: End ----- Check if flash needed:_returned:_%0"
;
seq_set_prop_1f_1 =
$go 10 1 // AppGPIO_08 = GPIO_10
$d1000
$go 10 0
;
//***************************************
// Spot, property 32 ***
//***************************************
seq_set_prop_20=; //TBD
//================================================
//=============== SIZE CONFIGS ===================
//================================================
LOCK_30_FPS= #SET_REG(08,#VR_30_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_15_FPS= #SET_REG(08,#VR_15_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_12_FPS= #SET_REG(08,#VR_12_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_10_FPS= #SET_REG(08,#VR_10_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_7_5_FPS= #SET_REG(08,#VR_7_5_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
RELEASE_LOCK_FPS=
$"CAMDRIVER0_Lock_release"
$u07; // Set draft mode frame rate and do
// transition to draft mode according to property 7
VF_TRANSITION_DELAY=$d00c8;
//=========================================================
// Normal quality settings:
// MIN MAX TARGET COMPRESSION for initial, average and last quality
//
// 640 x 480: 10 150 55 75
// 1280 x 960: 60 400 200 75
// 1632 x1224: 150 600 400 75
// 2048 x 1536 400 800 600 75
//
//=========================================================
//---------------------------------------------------
//=========================================================
// Fine quality settings:
// MIN MAX TARGET COMPRESSION for initial, average and last quality
//
// 640 x 480: 10 150 80 90
// 1280 x 960: 150 400 300 90
// 1632 x1224: 400 600 500 90
// 2048 x 1536 600 900 800 90
//
//=========================================================
seq_ss_config_1 =
$sf.03 1 // JPEG flag to 1
#SET_REG(1A,09) // 640 x 480 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: VGA NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
96 00 // JPEG_MAX_CODE_SIZE = 150d
0A 00 // JPEG_MIN_CODE_SIZE = 10d
37 00 // JPEG_TARGET_CODE_SIZE = 55d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: VGA LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
96 00 // JPEG_MAX_CODE_SIZE = 150d
32 00 // JPEG_MIN_CODE_SIZE = 50d
50 00 // JPEG_TARGET_CODE_SIZE = 80d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_2 =
$sf.03 1 // JPEG flag to 1
#SET_REG(1A,06) // 1280 x 960 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: 1M NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
90 01 // JPEG_MAX_CODE_SIZE = 400d
3C 00 // JPEG_MIN_CODE_SIZE = 60d
C8 00 // JPEG_TARGET_CODE_SIZE = 200d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: 1M LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
90 01 // JPEG_MAX_CODE_SIZE = 400d
64 00 // JPEG_MIN_CODE_SIZE = 100d
2C 01 // JPEG_TARGET_CODE_SIZE = 300d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_4 =
$sf.03 1 // JPEG flag to 1
#SET_REG(1A,04) // 1632 x 1224 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: 2M NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
58 02 // JPEG_MAX_CODE_SIZE = 600d
96 00 // JPEG_MIN_CODE_SIZE = 150d
90 01 // JPEG_TARGET_CODE_SIZE = 400d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: 2M LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
58 02 // JPEG_MAX_CODE_SIZE = 600d
90 01 // JPEG_MIN_CODE_SIZE = 400d
F4 01 // JPEG_TARGET_CODE_SIZE = 500d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_5 =
$sf.03 1 // JPEG output
#SET_REG(1A,00) // 2048 x 1536 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: 3M NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
20 03 // JPEG_MAX_CODE_SIZE = 800d
90 01 // JPEG_MIN_CODE_SIZE = 400d
58 02 // JPEG_TARGET_CODE_SIZE = 600d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: 3M LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
84 03 // JPEG_MAX_CODE_SIZE = 900d
58 02 // JPEG_MIN_CODE_SIZE = 600d
52 03 // JPEG_TARGET_CODE_SIZE = 850d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_10 =
$sf.03 0 // YCbCr output
#SET_REG(09,08) // 320 x 240 YCbCr and YCbCr IMST
;
seq_ss_config_11 =
$sf.03 0 // YCbCr output
#SET_REG(09,04) // 640 x 480 YCbCr and YCbCr IMST
;
seq_vf_config_20=
$"CAMDRIVER0 vf20"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#LOCK_30_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
seq_vf_config_25=
$"CAMDRIVER0 vf25"
#VF_TRANSITION_DELAY
#SET_REG(07,0E)
#LOCK_12_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
$cf.02 0 // If not in any draft mode
$sf.02 1 // Set draft flag to 1
$cl
#CHANGE_MODE(34,01) // normal draft
$cx
;
seq_vf_config_26=
$"CAMDRIVER0 vf26"
#VF_TRANSITION_DELAY
#SET_REG(07,0C)
#LOCK_12_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
$cf.02 0 // If not in any draft mode
$sf.02 1 // Set draft flag to 1
$cl
#CHANGE_MODE(34,01) // normal draft
$cx
;
seq_vf_config_29=
$"CAMDRIVER0 vf29"
#VF_TRANSITION_DELAY
#SET_REG(07,0C)
#LOCK_10_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
$cf.02 0 // If not in any draft mode
$sf.02 1 // Set draft flag to 1
$cl
#CHANGE_MODE(34,01) // normal draft
$cx
;
seq_vf_config_2a=
$"CAMDRIVER0 vf2a"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#COMMAND(04,00)
#COMMAND(05,00)
#SET_REG(08,3C) // 30fps => Normal mode
#COM_EVENT(03,3C) // 30 fps, AE_SLOW_SHUTTER
// #COMMAND(04,17)
;
seq_vf_config_2b=
$"CAMDRIVER0 vf2b"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#LOCK_15_FPS // 15fps,
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
seq_vf_config_2c=
$"CAMDRIVER0 vf2c"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#SET_REG(08,0F) // 7.5fps, Dark mode
// #COM_EVENT(03,0F) // 7.5fps, AE_SLOW_SHUTTER
#COM_EVENT(03,0F) // AE, 7.5fps
// #COMMAND(04,00) // Fix for about 8fps
// #COMMAND(05,00)
;
seq_vf_config_2f=
$"CAMDRIVER0 vf2f"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#LOCK_30_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
seq_ss_config_30=$"CAMDRIVER0_ss_conf" 05 02 00 07 06 $f 06 02 00 01 01 34 $f $d0200
03 55 AA $f
08 04 12 80 00 05 AA 55 $se 30 $d0100;
//===============================================
// |