1.实验描述:
通过config_ov7670_OutPut(u16 xsta,u16 ysta,u16 width,u16 height,u8 ouput_mode)可以设置摄像头显示图片的位置,窗口的大小,显示的模式(彩 {MOD}还是灰度)。
2.说明:
灰度输出:将摄像头设置输出为YUV格式(YUYV输出,意思就是第一个字节是Y,第二个字节是U,第三个字节是Y,第四个字节是V轮流输出),取Y分量,去掉U,V,并将Y分量转换为RGB565就可以显示灰度图像了。
3.如何提高帧数:
a:提高摄像头输出的帧数
当ov_sta==2的时候们才开始显示图像。如果摄像头能输出30FPS,那么在液晶显示速度足够的情况下,最多只能显示15FPS,所以想要提高显示帧率可以提高摄像头输出的帧率。
这里有一个公式:1s=510*784*2*2*PCLK*摄像头输出帧数。(至于原理可以看下时序图) 。这里初始化的代码设置的像素输出时钟PCLK为48MHZ,所以我们只能输出30FPS,可以通过设置0x6b将PCLK的时钟设置为96MHZ(最高了,外部输入时钟为12MHZ 这了8倍频),那么就可以输出60FPS,就可以提高显示的帧率了。
b:送数据的显示速度,例如 用FSMC控制液晶,快速IO,移位等等。
4.如何调试:
利用usmart调试摄像头很方便的哦, 将函数config_ov7670_OutPut(u16 xsta,u16 ysta,u16 width,u16 height,u8 ouput_mode)和SCCB_WR_Reg(u8 reg,u8 data)添加到usmart_config.c文件就好了^_^
源码以及参考的文档见附件:
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
看了一下手册,好像设置6b的【7:6】位,01:x4倍,10:x6倍,11:x8倍。是不是像素时钟越高,场中断的时间越少吗??这里的提高帧率是什么意思???场中断是固定33ms???
---------------------------------
搞这么多,ov会跑飞吧?
ov可以跑96M么?
..OBJOV7670.axf: error: L6047U: The size of this image (34208 bytes) exceeds the maximum allowed for this version of the linker
程序是我直接下载下来然后编译的!请问这是什么问题?
一周热门 更多>