OpenEdv-开源电子网

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

关于OV2640的传感器窗口大小

[复制链接]

9

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2019-10-19
在线时间
46 小时
发表于 2020-5-18 15:41:30 | 显示全部楼层 |阅读模式
1金钱
关于OV2640的传感器窗口大小
1)代码
{0x17, 0x11},//HREFST MSB 8 bits, 3LSBs in REG32[2:0] Horizontal Window start: 0001 0001 110 -- 142
  {0x18, 0x75},//HREFEND MSB 8 bits, .............[5:3]...................end  : 0111 0101 110 -- 942
               //Horizontal Window width 942-142=800
2)DS中介绍对应0x17/18/32寄存器
Horizontal Window Start MSB 8 bits (3 LSBs in REG32[2:0] (0x32))
Bit[10:0]: Selects the start of the horizontal window, each LSB represents two pixels

Horizontal Window End MSB 8 bits (3 LSBs in REG32[5:3] (0x32))
Bit[10:0]: Selects the end of the horizontal window, each LSB represents two pixels

942*2=1884 不是超过1632吗? 怎么理解each LSB represents two pixels

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2020-5-4
在线时间
0 小时
发表于 2020-5-18 15:43:45 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-5-19 01:22:39 | 显示全部楼层
每个LSB代表2个像素
回复

使用道具 举报

9

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2019-10-19
在线时间
46 小时
 楼主| 发表于 2020-5-19 11:34:38 | 显示全部楼层
正点原子 发表于 2020-5-19 01:22
每个LSB代表2个像素

这是OV2640(配套F407):
//设置传感器输出窗口
//sx,sy,起始地址
//width,height:宽度(对应:horizontal)和高度(对应:vertical)
void OV2640_Window_Set(u16 sx,u16 sy,u16 width,u16 height)//pnhhit 还有不清楚的地方,传感器输出窗口的开始和结束 是相对 谁?
{
        u16 endx;
        u16 endy;
        u8 temp;
        endx=sx+width/2;        //V*2  pnhhit 好像不对,起始和结束好像都是要取1/2,但是默认配置142 942(1884) 不是超过了1632吗?
        endy=sy+height/2;
       
        SCCB_WR_Reg(0XFF,0X01);                       
        temp=SCCB_RD_Reg(0X03);                                //读取Vref之前的值
        temp&=0XF0;
        temp|=((endy&0X03)<<2)|(sy&0X03);
        SCCB_WR_Reg(0X03,temp);                                //设置Vref的start和end的最低2位
        SCCB_WR_Reg(0X19,sy>>2);                        //设置Vref的start高8位
        SCCB_WR_Reg(0X1A,endy>>2);                        //设置Vref的end的高8位
       
        temp=SCCB_RD_Reg(0X32);                                //读取Href之前的值
        temp&=0XC0;
        temp|=((endx&0X07)<<3)|(sx&0X07);
        SCCB_WR_Reg(0X32,temp);                                //设置Href的start和end的最低3位
        SCCB_WR_Reg(0X17,sx>>3);                        //设置Href的start高8位
        SCCB_WR_Reg(0X18,endx>>3);                        //设置Href的end的高8位
}

根据OV2640的资料,前12行是不能用的,那么sx显然不能为0;我理解是sx和sy值是起始点坐标值得1/2,endx和endy也是坐标值的1/2 。但是两个坐标(行,列)都应该在(12,0)到(1231,1632)内。我读取过默认UXGA(1600*1200分辨率),我发现行起始坐标是142,结束坐标是942,差值是800,即800*2=1600.但是942*2=1884,不是超过了1632吗?我疑问就是这里!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-5-20 01:30:03 | 显示全部楼层
hemanzi 发表于 2020-5-19 11:34
这是OV2640(配套F407):
//设置传感器输出窗口
//sx,sy,起始地址

你可以试试
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 13:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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