0v7670窗口显示异常

2019-12-27 19:04发布

在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);
}
18条回答
heitu103
1楼 · 2019-12-28 00:30.采纳回答
给个参考,亲测可用

  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. }
复制代码
heitu103
2楼-- · 2019-12-28 17:30
chengying 发表于 2016-6-28 09:26
你好,设置160X120画面,为何显示是160X60两个画面叠加,你那也会这样吗,我现在是OV7670_config_window(1 ...

这个184 和10 是别人从linux下移植过来的,还有,这个窗口设置函数在我这是正常的呀。
chengying
3楼-- · 2019-12-28 19:51
 精彩回答 2  元偷偷看……
heitu103
4楼-- · 2019-12-28 20:13
chengying 发表于 2016-6-30 09:31
我这边测试很奇怪,窗口跟我摄像头主频有关,设置主频高,窗口多一倍

我这Camera的PLCK是24MHz
chengying
5楼-- · 2019-12-28 22:53
heitu103 发表于 2016-6-30 13:31
我这Camera的PLCK是24MHz

方便把你寄存器设置共享一下吗,我现在还一个很奇怪现象,是主频24M,显示变暗了很多,窗口要在4M下才显示正常
heitu103
6楼-- · 2019-12-28 23:57
chengying 发表于 2016-6-30 15:04
方便把你寄存器设置共享一下吗,我现在还一个很奇怪现象,是主频24M,显示变暗了很多,窗口要在4M下才显 ...

我把整个工程上传过来,你打开找找
【08】红龙板407_DCMI_ov7670(4.3寸全屏显示)(2015.03.12).rar (1.18 MB, 下载次数: 7) 2016-6-30 16:10 上传 点击文件名下载附件
chengying
7楼-- · 2019-12-29 02:05
好的,太谢谢

一周热门 更多>