Skip to content

Commit d6f80e6

Browse files
committed
Enable QQVGA mode
1 parent 4d5f33c commit d6f80e6

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

src/OV767X.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ int OV767X::begin(int resolution, int format, int fps)
8888
_height = 144;
8989
break;
9090

91+
case QQVGA:
92+
_width = 160;
93+
_height = 120;
94+
break;
95+
9196
default:
9297
return 0;
9398
}

src/OV767X.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ enum
3737
CIF = 1, // 352x240
3838
QVGA = 2, // 320x240
3939
QCIF = 3, // 176x144
40+
QQVGA = 4, // 160x120
4041
};
4142

4243
class OV767X

src/utility/ov7670.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ struct v4l2_fract {
3636
#define QVGA_HEIGHT 240
3737
#define QCIF_WIDTH 176
3838
#define QCIF_HEIGHT 144
39+
#define QQVGA_WIDTH 160
40+
#define QQVGA_HEIGHT 120
3941

4042
#define V4L2_EXPOSURE_AUTO 0
4143

@@ -815,6 +817,21 @@ static struct regval_list ov7670_qcif_regs[] = {
815817
{ 0xff, 0xff },
816818
};
817819

820+
static struct regval_list ov7670_qqvga_regs[] = {
821+
{ REG_COM3, COM3_DCWEN },
822+
{ REG_COM14, 0x1a},
823+
{ 0x72, 0x22 }, // downsample by 4
824+
{ 0x73, 0xf2 }, // divide by 4
825+
{ REG_HSTART, 0x16 },
826+
{ REG_HSTOP, 0x04 },
827+
{ REG_HREF, 0xa4 },
828+
{ REG_VSTART, 0x02 },
829+
{ REG_VSTOP, 0x7a },
830+
{ REG_VREF, 0x0a },
831+
{ 0xff, 0xff }, /* END MARKER */
832+
833+
};
834+
818835
static struct ov7670_win_size ov7670_win_sizes[] = {
819836
/* VGA */
820837
{
@@ -859,7 +876,19 @@ static struct ov7670_win_size ov7670_win_sizes[] = {
859876
.vstart = 14,
860877
.vstop = 494,
861878
.regs = ov7670_qcif_regs,
879+
},
880+
/* QQVGA */
881+
{
882+
.width = QQVGA_WIDTH,
883+
.height = QQVGA_HEIGHT,
884+
.com7_bit = COM7_FMT_VGA, /* see comment above */
885+
.hstart = 0x16, /* Empirically determined */
886+
.hstop = 0x04,
887+
.vstart = 0x02,
888+
.vstop = 0x7a,
889+
.regs = ov7670_qqvga_regs,
862890
}
891+
863892
};
864893

865894
static struct ov7670_win_size ov7675_win_sizes[] = {

0 commit comments

Comments
 (0)