新手入门
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2014-6-15
- 在线时间
- 0 小时
|
5金钱
这是我们的OV7670采集的图像:
真心不太懂为什么会出现这种问题。
我是修改的原子哥的代码,将OV7670的输出设置为YUV模式,而且用串口调试助手查看,配置正确。输出了xxYYxx11这种格式。寄存器的主体配置如下:
{0x12, 0x10},//QVGA,YUV
{0x3a, 0x14},//使用固定UV输出
{0x3d, 0x80},//使用固定UV输出
{0x67, 0x11},//固定U值,0x11,方便测试
{0x68, 0xFF},//固定V值,0xFF,方便测试
{0x40, 0xC0},//初始设置,YUV模式,这个寄存器必须设置
//输出窗口设置
{0x32, 0x80},
{0x17, 0x16},
{0x18, 0x04},//5
{0x19, 0x02},
{0x1a, 0x7a},
{0x03, 0x0a},
读取的程序代码如下:
uint8 color[2];
uint32 j;
if(ov_sta==2)
{
OV7670_CS=0;
OV7670_RRST=0;
OV7670_RCK=0;
OV7670_RCK=1;
OV7670_RCK=0;
OV7670_RRST=1;
OV7670_RCK=1;
color[0]=0xFF;
LPLD_USB_VirtualCom_Tx(color,1);
for(j=0;j<76800;j++)//320*240=76800
{
OV7670_RCK=0;
color[0]=OV7670_DATA();//读数据,
OV7670_RCK=1;
OV7670_RCK=0;
color[1]=OV7670_DATA();
OV7670_RCK=1;
if(color[0]==0xFF)color[0]=0xFE;
LPLD_USB_VirtualCom_Tx(color,1);
}
OV7670_CS=1;
OV7670_RCK=0;
OV7670_RCK=1;
ov_sta=0;
}
因为我们用的是K60的板子,摄像头是原子哥的那款,然后使用的是LPLD的库写的代码。系统配置的系统主频是96MHz。总线频率最高为50MHz。
怀疑是时序控制问题,因为寄存器确实按照YUV格式输出了。
但还是搞不清楚啊,跪求原子哥回复。
|
|