OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6650|回复: 6

正点原子OV7725摄像头摄像头分辨率设置问题

[复制链接]

3

主题

8

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2018-5-20
在线时间
4 小时
发表于 2018-5-23 22:55:17 | 显示全部楼层 |阅读模式
10金钱
[mw_shl_code=applescript,true]//设置图像输出窗口
//width:输出图像宽度,<=320
//height:输出图像高度,<=240
//mode:0,QVGA输出模式;1,VGA输出模式
//QVGA模式可视范围广但近物不是很清晰,VGA模式可视范围小近物清晰
void OV7725_Window_Set(u16 width,u16 height,u8 mode)
{
        u8 raw,temp;
        u16 sx,sy;       
        if(mode)
        {
                sx=(640-width)/2;
                sy=(480-height)/2;
                SCCB_WR_Reg(COM7,0x06);                //设置为VGA模式
                SCCB_WR_Reg(HSTART,0x23);         //水平起始位置
                SCCB_WR_Reg(HSIZE,0xA0);         //水平尺寸
                SCCB_WR_Reg(VSTRT,0x07);         //垂直起始位置
                SCCB_WR_Reg(VSIZE,0xF0);         //垂直尺寸
                SCCB_WR_Reg(HREF,0x00);
                SCCB_WR_Reg(HOutSize,0xA0); //输出尺寸
                SCCB_WR_Reg(VOutSize,0xF0); //输出尺寸
        }
        else
        {
                sx=(320-width)/2;
                sy=(240-height)/2;
                SCCB_WR_Reg(COM7,0x46);                //设置为QVGA模式
                SCCB_WR_Reg(HSTART,0x3f);         //水平起始位置
                SCCB_WR_Reg(HSIZE, 0x50);         //水平尺寸
                SCCB_WR_Reg(VSTRT, 0x03);         //垂直起始位置
                SCCB_WR_Reg(VSIZE, 0x78);         //垂直尺寸
                SCCB_WR_Reg(HREF,  0x00);
                SCCB_WR_Reg(HOutSize,0x50);        //输出尺寸
                SCCB_WR_Reg(VOutSize,0x78); //输出尺寸
        }
        raw=SCCB_RD_Reg(HSTART);
        temp=raw+(sx>>2);//sx高8位存在HSTART,低2位存在HREF[5:4]
        SCCB_WR_Reg(HSTART,temp);
        SCCB_WR_Reg(HSIZE,width>>2);//width高8位存在HSIZE,低2位存在HREF[1:0]
       
        raw=SCCB_RD_Reg(VSTRT);
        temp=raw+(sy>>1);//sy高8位存在VSTRT,低1位存在HREF[6]
        SCCB_WR_Reg(VSTRT,temp);
        SCCB_WR_Reg(VSIZE,height>>1);//height高8位存在VSIZE,低1位存在HREF[2]
       
        raw=SCCB_RD_Reg(HREF);
        temp=((sy&0x01)<<6)|((sx&0x03)<<4)|((height&0x01)<<2)|(width&0x03)|raw;
        SCCB_WR_Reg(HREF,temp);
       
        SCCB_WR_Reg(HOutSize,width>>2);
        SCCB_WR_Reg(VOutSize,height>>1);
       
        SCCB_RD_Reg(EXHCH);       
        temp = (raw|(width&0x03)|((height&0x01)<<2));       
        SCCB_WR_Reg(EXHCH,temp);
}[/mw_shl_code]

在VGA模式 640*480下 几个寄存器的值(十进制)是这样的:HSTRT = 35 HSIZE = 160 VSTRT = 7 VSIZE = 240 HREF = 0 HOutSize = 160 VOutSize = 240 EXHCH = 0
子啊480*240下几个寄存器的值是这样的:HSTRT = 55 HSIZE = 120 VSTRT = 67 VSIZE = 120 HREF = 0 HOutSize = 120 VOutSize = 120 EXHCH = 0
请问论坛里有同学知道这个为什么关于分辨率的这几个寄存器要这么配置吗,看了好久手册也没找到。困扰了好几天。

最佳答案

查看完整内容[请看2#楼]

看7725的官方资料。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-23 22:55:18 | 显示全部楼层
回复

使用道具 举报

7

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2017-12-13
在线时间
90 小时
发表于 2018-5-24 17:49:09 | 显示全部楼层

看7725的官方资料。
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2018-5-20
在线时间
4 小时
 楼主| 发表于 2018-5-24 23:54:45 | 显示全部楼层
正点原子 发表于 2018-5-23 22:55
看7725的官方资料。

请问是哪个官方资料呢,我看了OV7725 Software Application Note和OV7725_datasheet里面好像没有这个的介绍
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2018-5-20
在线时间
4 小时
 楼主| 发表于 2018-5-24 23:55:23 | 显示全部楼层
Maximilian 发表于 2018-5-24 17:49
看7725的官方资料。

请问是哪个官方资料呢,我看了OV7725 Software Application Note和OV7725_datasheet里面好像没有这个的介绍
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-6-21
在线时间
19 小时
发表于 2019-11-12 20:10:35 | 显示全部楼层
这个问题我终于明白了。手册里有这个描述
HSIZE A0 (VGA)50 (QVGA) RW Horizontal Sensor Size HSize = {HSIZE[7:0] (0x18), HREF[1:0] (0x32)}
这就对应着上面的VGA模式 640*480下HSIZE的值为A0。但是这个值不是640,因为VGA分辨率为640*480,肯定想着这个参数和640有关啊
具体看手册HSize = {HSIZE[7:0] (0x18), HREF[1:0] (0x32)}这句话就知道其实分辨率的值不单单是A0,分辨率的值应该是HSIZE[7:0]的8位加上HREF[1:0]的这两位总共10位。
这样一看就明白了。A0的二进制是1010 0000。而HREF[1:0]这两位的值根据设置可以知道二进制为00,所以总的加起来就是1010 0000 00。这10个二进制数换算为十进制刚好就是640
其他参数根据手册其实也是这样的。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-9-25
在线时间
5 小时
发表于 2019-11-13 11:25:32 | 显示全部楼层
不要的逝去 发表于 2019-11-12 20:10
这个问题我终于明白了。手册里有这个描述
HSIZE A0 (VGA)50 (QVGA) RW Horizontal Sensor Size HSize = {H ...

你好,请问要配置256*192分辨率的要如何设置寄存器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 06:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表