原子大大, 为什么OV7670无法全屏

2019-07-20 06:29发布

原子大大, 为什么OV7670无法全屏;

目前只能设置320x320以下,但是我记得ov7670好像支持640x480的;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
wlq390934605
1楼-- · 2019-07-20 06:39
 精彩回答 2  元偷偷看……
wlq390934605
2楼-- · 2019-07-20 10:10
这样我们就可以写一个简单的函数来设置 OV7670 的分辨率了
输入图像的行起始点,场起始点, 宽度 ,高度计算得到相应寄存器的值
编译环境:keil mdk
void OV7670_config_window(u16 startx,u16 starty,u16 width, u16 height) {
u16 endx=(startx+width*2)%784;
u16 endy=(starty+height*2);
u8 x_reg, y_reg;
u8 state,temp;
state= rdOV7670Reg(0x32, &x_reg ); x_reg&= 0xC0;
state= rdOV7670Reg(0x03, &y_reg ); y_reg&= 0xF0;
//设置 HREF
temp = x_reg|((endx&0x7)<<3)|(startx&0x7); state = wrOV7670Reg(0x32, temp );
temp = (startx&0x7F8)>>3;
state = wrOV7670Reg(0x17, temp );
temp = (endx&0x7F8)>>3;
state = wrOV7670Reg(0x18, temp );
//设置 VREF
temp = y_reg|((endy&0x3)<<2)|(starty&0x3); state = wrOV7670Reg(0x03, temp );
temp = (starty&0x3FC)>>2;
state = wrOV7670Reg(0x19, temp );
temp = (endy&0x3FC)>>2;
state = wrOV7670Reg(0x1A, temp );
}
wlq390934605
3楼-- · 2019-07-20 10:27
最近在做一个可以兼容所有摄像头的APP, 才发现OV7670 不能实现全屏显示;;
OV7670只能显示在一个角落,怎么样都很怪
1965969523
4楼-- · 2019-07-20 11:08
 精彩回答 2  元偷偷看……
wlq390934605
5楼-- · 2019-07-20 11:39
自已更, 没人就自已顶;
;
话说,虽然没有找到OV7670    VGA 设置, 但又多了CIF设置;
;
;
==========================================;
;
void set_qvga(void)        //设置QVGA输出 320x240
{
        while(OV7670_WR_Reg(0x12, 0x14));//设置输出格式RAW,大小QVGA
        OV7670_WR_Reg(0x17, 0x16);//HSTART,输出格式-行频开始高八位(低三位在HREF[2:0])
        OV7670_WR_Reg(0x18, 0x04);        //HSTOP,输出格式-行频结束高八位(低三位在HREF[5:3])
        OV7670_WR_Reg(0x19, 0x03); //VSTRT, 输出格式-场频开始高八位(低二位在VREF[1:0])
        OV7670_WR_Reg(0x1A, 0x7B); //VSTOP,输出格式-场频结束高八位(低二位在VREF[3:2])
        OV7670_WR_Reg(0x03, 0x0a);        //VREF        位[3:2]VREF结束的低两位(高八位见VSTOP[7:0])
                                                      //位[1:0]VREF开始的低两位(高八位见VSTOP[7:0])
        OV7670_WR_Reg(0x70, 0x35);        //SCALING_XSC,水平缩放系数
        OV7670_WR_Reg(0x71, 0x3a);         //SCALING_YSC,垂直缩放系数
        OV7670_WR_Reg(0x72, 0x11);        //SCALING_DCWCTR,DCW控制
        OV7670_WR_Reg(0x73, 0xF7);        //SCALING_PC,旁路DSP缩放时钟分频控制
        OV7670_WR_Reg(0xA2, 0x02);        //SCALING_PCLK_DELAY,像素始终延迟
        OV7670_WR_Reg(0xac, 0x0);        //亮度
}

void set_cif(void)                //设置CIF输出  352x(288+2)
{
        while(OV7670_WR_Reg(0x12, 0x24)); //设置输出格式RAW,大小CIF
        OV7670_WR_Reg(0x17, 0x15);//HSTART,输出格式-行频开始高八位(低三位在HREF[2:0])
        OV7670_WR_Reg(0x18, 0x0B);        //HSTOP,输出格式-行频结束高八位(低三位在HREF[5:3])
        OV7670_WR_Reg(0x19, 0x03); //VSTRT, 输出格式-场频开始高八位(低二位在VREF[1:0])
        OV7670_WR_Reg(0x1A, 0x7b); //VSTOP,输出格式-场频结束高八位(低二位在VREF[3:2]);
        OV7670_WR_Reg(0x03, 0x0a);        //VREF        位[3:2]VREF结束的低两位(高八位见VSTOP[7:0])
                                                      //位[1:0]VREF开始的低两位(高八位见VSTOP[7:0])
        OV7670_WR_Reg(0x32, 0xb6);        //HREF,HREF控制
                                                                                                                                                                                                                        //位[7:6]:HREF沿距数据输出的偏移
                                                                                                                                                                                                                        //位[5:3]:HREF结束的低3位(高8位在HSTOP)
                                                                                                                                                                                                                        //位[2:0]:HREF开始的低3位(高8位在HSTOP)
        OV7670_WR_Reg(0x70, 0x3A); //SCALING_XSC,水平缩放系数
        OV7670_WR_Reg(0x71, 0x35); //SCALING_YSC,垂直缩放系数
        OV7670_WR_Reg(0x72, 0x11); //SCALING_DCWCTR,DCW控制
        OV7670_WR_Reg(0x73, 0xF2);        //SCALING_PC,旁路DSP缩放时钟分频控制
        OV7670_WR_Reg(0xA2, 0x03); //SCALING_PCLK_DELAY,像素始终延迟
}
wlq390934605
6楼-- · 2019-07-20 13:47
再找找, 要是没找到, 看来只能自已总结一个了;;
;
原子大大,太不给力了

一周热门 更多>