use_swap.c

  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1194442938015&lmt=1194190197&format=336x280_as&output=html&correlator=1194442937843&url=file%3A%2F%2F%2FC%3A%2FDocuments%2520and%2520Settings%2Flhh1%2F%E6%A1%8C%E9%9D%A2%2FCLanguage.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=583001034.1194442938&ga_sid=1194442938&ga_hid=1942779085&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency"> #include <stdio.h>

void swap_values(int *, int *);

void main(void)
 {
   int a = 1, b = 2;

   printf("Original values a %d b %d/n", a, b);
   swap_values(&a, &b);

   printf("Swapped values a %d b %d/n", a, b);
 }

 

HD_RESULT set_cap2_cfg(HD_PATH_ID *p_video_cap_ctrl) { HD_RESULT ret = HD_OK; HD_VIDEOCAP_DRV_CONFIG cap_cfg = {0}; HD_PATH_ID video_cap_ctrl = 0; HD_VIDEOCAP_CTRL iq_ctl = {0}; snprintf(cap_cfg.sen_cfg.sen_dev.driver_name, HD_VIDEOCAP_SEN_NAME_LEN-1, SENSOR_NAME); /*下面sensor的配置*/ cap_cfg.sen_cfg.sen_dev.if_type = HD_COMMON_VIDEO_IN_MIPI_CSI; cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.sensor_pinmux = 1; //use {SENSOR_NAME}@1 in peri-dev.dtsi #ifdef BINOCULOR_AVS cap_cfg.sen_cfg.sen_dev.if_cfg.tge.tge_en = TRUE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.swap = FALSE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.vcap_vd_src = HD_VIDEOCAP_SEN_TGE_CH5_VD_TO_VCAP2; cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_CSI(2, 0); cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = 0; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = 1; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = 2; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = 3; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[4] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[5] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[6] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[7] = HD_VIDEOCAP_SEN_IGNORE; #else cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_CSI(2, 0); cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = HD_VIDEOCAP_SEN_IGNORE; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[4] = 0; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[5] = 1; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[6] = 2; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[7] = 3; #endif ret = hd_videocap_open(0, HD_VIDEOCAP_2_CTRL, &video_cap_ctrl); //open this for device control if (ret != HD_OK) { return ret; } #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { cap_cfg.sen_cfg.shdr_map = HD_VIDEOCAP_SHDR_MAP(HD_VIDEOCAP_HDR_SENSOR2, (HD_VIDEOCAP_2|HD_VIDEOCAP_3)); } #endif ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_DRV_CONFIG, &cap_cfg); iq_ctl.func = VIDEOCAP_ALG_FUNC; #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { iq_ctl.func |= HD_VIDEOCAP_FUNC_SHDR; } #endif ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_CTRL, &iq_ctl); *p_video_cap_ctrl = video_cap_ctrl; return ret; } 这个函数呢
最新发布
09-17
这个 `set_cap2_cfg()` 函数与前面的 `set_cap_cfg()` 类似,用于**配置第二个视频采集通道(视频采集控制器 2)的硬件参数**,主要用于双目拼接系统中的**第二路摄像头(右目)**配置。 --- ## 🧠 函数主要作用: - **为视频采集控制器 2(HD_VIDEOCAP_2_CTRL)进行初始化配置** - **设置传感器接口、引脚映射、TGE同步等参数** - **支持 HDR 模式** - **在启用 `BINOCULOR_AVS` 时启用双目拼接专用配置** - **打开设备并设置控制参数** --- ## 🧩 主要流程分析: ### 1. 设置传感器名称和接口类型 ```c snprintf(cap_cfg.sen_cfg.sen_dev.driver_name, HD_VIDEOCAP_SEN_NAME_LEN-1, SENSOR_NAME); cap_cfg.sen_cfg.sen_dev.if_type = HD_COMMON_VIDEO_IN_MIPI_CSI; ``` - 设置传感器名称和 MIPI CSI 接口类型。 --- ### 2. **与 `BINOCULOR_AVS` 相关的关键配置(右目摄像头)** ```c #ifdef BINOCULOR_AVS cap_cfg.sen_cfg.sen_dev.if_cfg.tge.tge_en = TRUE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.swap = FALSE; cap_cfg.sen_cfg.sen_dev.if_cfg.tge.vcap_vd_src = HD_VIDEOCAP_SEN_TGE_CH5_VD_TO_VCAP2; cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_CSI(2, 0); cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = 0; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = 1; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = 2; cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = 3; #else // 非双目拼接模式下使用不同引脚映射 #endif ``` - **TGE 启用**:启用时间同步信号,用于帧同步。 - **vcap_vd_src 设置为 `HD_VIDEOCAP_SEN_TGE_CH5_VD_TO_VCAP2`**:指定使用 TGE 的通道5作为该采集控制器的 VD 同步源。 - **pin_cfg 配置**:根据是否启用双目拼接,选择不同的引脚映射。 > ✅ 这些配置确保右目摄像头能与左目摄像头同步采集图像,是双目拼接功能的重要组成部分。 --- ### 3. 打开视频采集设备(控制器2) ```c ret = hd_videocap_open(0, HD_VIDEOCAP_2_CTRL, &video_cap_ctrl); ``` - 打开第二个视频采集控制器,用于控制右目摄像头。 --- ### 4. 配置 HDR 模式(可选) ```c #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { cap_cfg.sen_cfg.shdr_map = HD_VIDEOCAP_SHDR_MAP(HD_VIDEOCAP_HDR_SENSOR2, (HD_VIDEOCAP_2|HD_VIDEOCAP_3)); } #endif ``` - 如果启用 HDR,配置 HDR 映射关系。 --- ### 5. 设置采集参数和 IQ 控制 ```c ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_DRV_CONFIG, &cap_cfg); iq_ctl.func = VIDEOCAP_ALG_FUNC; #ifdef HDR_MODE_SUPPORT if (g_hdr_type == TP_VIDEO_HDR_ON) { iq_ctl.func |= HD_VIDEOCAP_FUNC_SHDR; } #endif ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_CTRL, &iq_ctl); ``` - 设置采集驱动配置和控制功能(如 HDR)。 --- ### 6. 返回控制句柄 ```c *p_video_cap_ctrl = video_cap_ctrl; ``` - 返回采集控制器句柄供后续使用。 --- ## ✅ 总结: | 功能模块 | 是否受 `BINOCULOR_AVS` 影响 | 说明 | |----------|----------------------------|------| | TGE 配置 | ✅ 是 | 启用时间同步信号,用于右目摄像头 | | 引脚映射 | ✅ 是 | 双目模式下使用特定引脚映射 | | VD 同步源 | ✅ 是 | 使用 TGE 通道5作为同步源 | | 控制器编号 | ✅ 是 | 使用 `HD_VIDEOCAP_2_CTRL` 控制右目摄像头 | --- ## 📌 总体评价: `set_cap2_cfg()` 是双目拼接系统中**右目摄像头采集通道的配置函数**,与 `set_cap_cfg()` 构成完整的双摄像头配置对。通过 `BINOCULOR_AVS` 宏控制是否启用双目相关配置,确保左右摄像头帧同步采集,为后续拼接处理提供基础。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值