打印

ov7670的窗口大小设置函数(VGA,QVGA都验证过)

[复制链接]
249|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如果是VGA输出的话, 宏定义     #define SET_WINDOW_AGAIN   1
如果是QVGA输出的话, 宏定义   #define SET_WINDOW_AGAIN   2


//QVGA调用函数   OV7670_Window_Set(184,10,320,240);
//VGA调用函数   OV7670_Window_Set(184,10,640,480);
void OV7670_Window_Set(u16 sx,u16 sy,u16 width,u16 height)
{
        u16 endx;
        u16 endy;
        u8 temp;
        
        
        //SET_WINDOW_AGAIN:      VGA是1    QVGA是2
        endx=(sx+width*SET_WINDOW_AGAIN)%784;        //   sx:HSTART endx:HSTOP   
         endy=sy+height*SET_WINDOW_AGAIN;                //   sy:VSTRT endy:VSTOP               
        
        //设置HREF
        OV_ReadReg(0X32,&temp);                                //读取Href之前的值
        temp&=0XC0;
        temp|=((endx&0X07)<<3)|(sx&0X07);        
        OV_WriteReg(0X32,temp);
                OV_WriteReg(0X17,(sx&0x7f8)>>3);                        //设置Href的start高8位
        OV_WriteReg(0X18,(endx&0x7f8)>>3);                        //设置Href的end的高8位

        //设置VREF
        OV_ReadReg(0X03,&temp);                                //读取Vref之前的值
        temp&=0XF0;
        temp|=((endy&0X03)<<2)|(sy&0X03);
        OV_WriteReg(0X03,temp);                                //设置Vref的start和end的最低2位
                OV_WriteReg(0X19,(sy&0x3fc)>>2);                        //设置Vref的start高8位
        OV_WriteReg(0X1A,(endy&0x3fc)>>2);                        //设置Vref的end的高8位


}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

376

主题

377

帖子

0

粉丝