搜索
bottom↓
回复: 18

0v7670窗口显示异常

[复制链接]

出0入0汤圆

发表于 2016-6-27 09:24:00 | 显示全部楼层 |阅读模式
在320X240的液晶上显示qvga,一切正常。打算让摄像头显示在窗口280X200,怎么都是错位。
void OV_HW(unsigned int  hstart, unsigned int hstop, unsigned int vstart, unsigned int vstop)
{
    uint8_t v;
    OV7670_WriteReg(0x17, (hstart >> 3) & 0xff); //HSTART
    OV7670_WriteReg(0x18, (hstop >> 3) & 0xff); //HSTOP
    OV7670_ReadReg(0x32,&v);
    v = (v & 0xc0) | ((hstop & 0x7) << 3) | (hstart & 0x7);
    OV7670_WriteReg(0x32, v); //HREF

    OV7670_WriteReg(0x19, (vstart >> 2) & 0xff); //VSTART 开始高8位
    OV7670_WriteReg(0x1a, (vstop >> 2) & 0xff); //VSTOP        结束高8位
     OV7670_ReadReg(0x03,&v );
    v = (v & 0xf0) | ((vstop & 0x3) << 2) | (vstart & 0x3);
   OV7670_WriteReg(0x03, v); //VREF
    OV7670_WriteReg(0x11, 0x00);
}

出0入0汤圆

发表于 2016-6-27 10:28:10 | 显示全部楼层
没用过摄像头,但是我觉得这种摄像头输出的分辨率难道不是一些固定的值?你要适应屏幕是不是该自己做个缩放?

出0入0汤圆

发表于 2016-6-27 10:34:48 | 显示全部楼层
给个参考,亲测可用

  1. //输出窗口设置
  2. void OV7670_config_window(u16 startx,u16 starty,u16 width,u16 height)
  3. {
  4.     u16 endx=(startx+width)%784;   //QVGA输出的话改成 u16 endx=(startx+width*2)%784;   
  5.     u16 endy=(starty+height);            // u16 endy=(starty+height*2);

  6.      u8 x_reg,y_reg;
  7.      u8 state,temp;
  8.      state=ov7660_read_reg(0x32,&x_reg);
  9.     x_reg&=0xC0;
  10.     state=ov7660_read_reg(0x03,&y_reg);
  11.     y_reg&=0xF0;
  12.                
  13.     //HREF
  14.     temp=x_reg|((endx&0x7)<<3)|(startx&0x7);
  15.     state=ov7670_write_reg(0x32,temp);
  16.     temp=(startx&0x7F8)>>3;
  17.      state=ov7670_write_reg(0x17,temp);
  18.      temp=(endx&0x7F8)>>3;
  19.       state=ov7670_write_reg(0x18,temp);
  20.                
  21.     //VREF
  22.      temp=y_reg|((endy&0x3)<<2)|(starty&0x3);
  23.      state=ov7670_write_reg(0x03,temp);
  24.      temp=(starty&0x3FC)>>2;
  25.     state=ov7670_write_reg(0x19,temp);
  26.      temp=(endy&0x3FC)>>2;
  27.      state=ov7670_write_reg(0x1A,temp);
  28. }
复制代码

出0入0汤圆

 楼主| 发表于 2016-6-27 10:40:38 | 显示全部楼层
谢谢,我测一下

出0入0汤圆

 楼主| 发表于 2016-6-27 18:12:12 | 显示全部楼层
heitu103 发表于 2016-6-27 10:34
给个参考,亲测可用

奇怪,我咋调用你函数,比如设置成OV7670_config_window(0, 0,240,120);显示还是异常,你是QVGA吗?你实际测试是怎么设置哪些参数?

出0入0汤圆

发表于 2016-6-27 18:16:43 | 显示全部楼层
chengying 发表于 2016-6-27 18:12
奇怪,我咋调用你函数,比如设置成OV7670_config_window(0, 0,240,120);显示还是异常,你是QVGA吗?你实 ...

忘记说了,OV7670_config_window函数的前两个参数是固定的,比如你要设置160x120大小的画面,参数是这样的,OV7670_config_window(184,10,160,120);
还有一个就是LCD开窗的大小也要设置成160x120。

出0入0汤圆

 楼主| 发表于 2016-6-27 18:36:09 | 显示全部楼层
heitu103 发表于 2016-6-27 18:16
忘记说了,OV7670_config_window函数的前两个参数是固定的,比如你要设置160x120大小的画面,参数是这样 ...

  OV7670_config_window(184,10,260,220);显示切是260X110

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-6-28 09:26:05 | 显示全部楼层
本帖最后由 chengying 于 2016-6-28 09:36 编辑
heitu103 发表于 2016-6-27 18:16
忘记说了,OV7670_config_window函数的前两个参数是固定的,比如你要设置160x120大小的画面,参数是这样 ...


你好,设置160X120画面,为何显示是160X60两个画面叠加,你那也会这样吗,我现在是OV7670_config_window(184,10,160,240);才能正常显示160X120,另外为和起始地址是184和10,为何不能0,?

出0入0汤圆

发表于 2016-6-29 11:55:22 | 显示全部楼层
chengying 发表于 2016-6-28 09:26
你好,设置160X120画面,为何显示是160X60两个画面叠加,你那也会这样吗,我现在是OV7670_config_window(1 ...

这个184 和10 是别人从linux下移植过来的,还有,这个窗口设置函数在我这是正常的呀。

出0入0汤圆

 楼主| 发表于 2016-6-30 09:31:14 | 显示全部楼层
heitu103 发表于 2016-6-29 11:55
这个184 和10 是别人从linux下移植过来的,还有,这个窗口设置函数在我这是正常的呀。 ...

我这边测试很奇怪,窗口跟我摄像头主频有关,设置主频高,窗口多一倍

出0入0汤圆

发表于 2016-6-30 13:31:00 | 显示全部楼层
chengying 发表于 2016-6-30 09:31
我这边测试很奇怪,窗口跟我摄像头主频有关,设置主频高,窗口多一倍

我这Camera的PLCK是24MHz

出0入0汤圆

 楼主| 发表于 2016-6-30 15:04:16 | 显示全部楼层
heitu103 发表于 2016-6-30 13:31
我这Camera的PLCK是24MHz

方便把你寄存器设置共享一下吗,我现在还一个很奇怪现象,是主频24M,显示变暗了很多,窗口要在4M下才显示正常

出0入0汤圆

发表于 2016-6-30 16:11:18 | 显示全部楼层
chengying 发表于 2016-6-30 15:04
方便把你寄存器设置共享一下吗,我现在还一个很奇怪现象,是主频24M,显示变暗了很多,窗口要在4M下才显 ...

我把整个工程上传过来,你打开找找

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-6-30 16:19:40 | 显示全部楼层
好的,太谢谢

出0入0汤圆

发表于 2017-5-9 20:29:28 | 显示全部楼层

OV7670输出160*120可以了吗?

出0入0汤圆

 楼主| 发表于 2017-5-11 09:13:40 | 显示全部楼层
没调过这个

出0入0汤圆

发表于 2017-5-17 09:55:06 | 显示全部楼层

楼主,你的280*200调试出来了吗?就修改下开窗大小就可以吗?

出0入0汤圆

发表于 2017-5-17 11:26:43 | 显示全部楼层

我这设置成160*120后,画面分成了好几部分。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-5-17 12:02:32 | 显示全部楼层
窗口不好改,没改成功
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 14:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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