久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: ov7670攝像頭分辨率設置方法詳解 [打印本頁]

作者: heitian    時間: 2017-8-9 17:02
標題: ov7670攝像頭分辨率設置方法詳解
最近一直在糾結如何把 OV7670 輸出的 圖片分辨率縮小,以減少數據量來適應數據的傳輸, 在網上看了好多也沒有關于寄存器的具體設置,最終又讀了幾遍數據手冊,加上網友們寫的 帖子的啟發,總結出如下結論,希望大家批評指正。
Ov7670 的寄存器中跟分辨率有關的寄存器主要是一下幾個:
0x17 HSTART               輸出格式-行頻開始高八位(低三位在HREF[2:0])
0x18 HSTOP              輸出格式-行頻結束高八位(低三位在HREF[5:3])
0x19 VSTRT               輸出格式-場頻開始高八位(低二位在VREF[1:0])
0x1A VSTOP              輸出格式-場頻結束高八位(低二位在 VREF[3:2])
0x03 VREF               位[3:2]VREF 結束的低兩位(高八位見VSTOP[7:0] 位[1:0]VREF 開始的低兩位(高八位見 VSTOP[7:0]
0x32 HREF              讀寫HREF控制 位[5:3]:HREF結束的低3位(高8位在HSTOP) 位[2:0]:HREF 結束的低 3 位(高 8 位在HSTOP)
網上給的一般的設置方式是這樣的:QVGA RGB565 320*240
{0x32, 0x80},
{0x17, 0x17},
{0x18, 0x05},
{0x19, 0x02},
{0x1a, 0x7b},
{0x03, 0x0a}, 先把這幾個寄存器的值計算一下可以發現設置是這樣的 : HSTART               HSTOP              VSTART              VSTOP
184              40              10              490 先看一下 HREF 的意義:


可以看出 HREF 的高電平寬度等于我們所要顯示的一行像素的數據的個數: HREF = WEIGHT*2;              乘以二是因為每個像素點是有兩個數據
HSTOP=START +  HREF;
184 + 320*2 =  824;
可是 HSTOP 是 40;              這里的 40 是 824%784 得到的 為什么對 784 取余數可以看下數據手冊中的這個圖:



計算 PCLK 的參數,如下:

VSYNC: 510* Line =  3*tLine +  15*tLine +480*tLine
HREF: 784*tP = 640*tP +  144*tP
HSYNC: 784*tP =  80*tP +  45*tP +  640*tP +  19*tP VGA RGB565, YUV 30fps:
PCLK = 784 * 510 * 30 * 2(byte) = 23990400  = 24MHz



再看 VGA 和 QVGA               的區別:
通過這幾幅圖可以看出來 VSTART               VSTOP 這兩個寄存器決定了采集的行數也就是高度 VSTART   = HEIGHT*2 +  VSTOP;
通過比較 QVGA 和 VGA 時序的區別可以看出 乘以二的 原因



這樣我們就可以寫一個簡單的函數來設置 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 );
}




我們設置 OV7670_config_window(184,10,320,240)的圖片如下:



我們設置 OV7670_config_window(184,10,160,120)的圖片為:



同理設置 OV7670_config_window(184+160*2,10+120*2,160,120)的圖片為:


微笑 smile


完整的pdf格式文檔51黑下載地址(共4頁):
ov7670分辨率設置.pdf (250.63 KB, 下載次數: 173)




作者: plj213    時間: 2019-4-4 12:53

謝謝分享。。。
作者: 310139033    時間: 2019-7-28 15:25
謝謝樓主,我用你的方法設置好了
作者: 13824232407    時間: 2020-1-22 14:14
正好需要
作者: thouderno1    時間: 2024-4-29 11:57
wrOV7670和rdOV7670函數定義代碼是什么呀




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲欧美成人影院 | 精品国产一区二区三区久久 | 久久成人精品视频 | 亚洲性人人天天夜夜摸 | 日韩欧美网 | 精品在线一区 | 一区在线观看 | 亚洲精品乱码久久久久久按摩 | 麻豆av网 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 一区二区日韩 | 久久婷婷色 | 日韩性生活网 | 成人在线不卡 | 久久精品国产一区二区三区 | 久久久蜜臀国产一区二区 | 日韩在线不卡 | 91精品国产综合久久久久久蜜臀 | 日本精品一区二区三区在线观看视频 | 成人在线精品视频 | 日韩图区 | 亚洲国产一区二区三区 | 欧美四虎 | 精品乱人伦一区二区三区 | 四虎影院在线观看免费视频 | 97精品一区二区 | 久久久婷| 亚洲精品电影网在线观看 | 欧洲成人免费视频 | 成人高清在线视频 | 久久精品亚洲 | 国产精品资源在线 | 亚洲国产成人精品女人久久久 | 青青草社区 | 91精品国产91久久综合桃花 | 成人性生交大片免费看中文带字幕 | 午夜精品久久久久久久久久久久久 | 在线色网| 在线视频一区二区三区 | 日韩在线视频免费观看 | 99热精品在线观看 |