【求助】OV7660直接发送数据到PC上,图像诡异~有图
大家好,最近,由于准备毕设原因,一直在调试OV7660,调试了一个多星期了,图像还没正确出来,看着大家一个个都用LCD直接把图像显示出来,自己只能是干着急啊,希望各位大大们能指点指点。我来介绍下:我的主控芯片是AT91SAM7S128,主频48M,直接输出12M震荡频率供7660工作,SCCB是通的,我参考的是wangguanfu大哥的avr直接驱动7660,再LCD显示图像的程序,将每位数据通过串口发送到电脑上,再做成BMP图像,可是图像一直有问题,而且经常图像数据经常出现大范围的重复或者是0x00,开头几行也总是0x55和0xAA的重复。图像效果如下图
http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_580331DP9MCV.JPG
(原文件名:Pic0.JPG)
发送一帧图像数据的程序在这里:
while(!PIN_OV7660_VSYNC_GET_STATE); // 等待 VSYNC==H
while( PIN_OV7660_VSYNC_GET_STATE) // 等待 VSYNC==L
PIN_OV7660_XCLK_CLK_OFF; // 关闭XCLK震荡信号输出
PIN_OV7660_XCLK_SET_OUT; // 设置XLCK引脚为输出
for (i = 0 ; i < 153600 ;) // 发送153600位数据
{
PIN_OV7660_XCLK_IO_LOW; //让XCLK 输出低
PIN_OV7660_XCLK_IO_HIGH; //让XCLK 输出高
if(PIN_OV7660_HREF_GET_STATE) //HREF为高时进入
{
Data = OV7660_GetDataIOValue();//获得7660的8位数据
DBGU_PutChar(Data); //串口发送数据
i ++;
}
}
还有个问题,7660的说明书里好像没有说明PCLK最长可以多长时间,这个参数应该很重要,请大家多多指教,先谢谢了~~ 论坛真火,帖子沉得都见不到了,大家帮我想想办法啊~~ 行错位了,检查一下你的行 好像是速度没跟上 回复【2楼】zxttgg 数学作业本
-----------------------------------------------------------------------
非常感谢你的建议,我明天再去实验室查查。
可是同样的程序,硬件连接也一样,我只是把 将每位数据送到LCD 改成 将每位数据用串口发出,为什么会出现这种情况呢?是不是PCLK有什么时间限制等需要注意的问题? 回复【3楼】mcucow
-----------------------------------------------------------------------
恩,我也有点这样的感觉,可是具体PCLK最长不能超过多长时间,我在数据手册里好像没有看到说明啊~~
还要注意哪些方面呢? 串口发出,太慢,和我发TFT显示不是一个数量级别!!!,数据丢了很多, DBGU_PutChar(Data); //串
把这个挪出来重新测试! 来不及处理
页:
[1]