搜索
bottom↓
回复: 67

Mega128+(OV7670+FIFO+3.0TFT)+代码、思想详细注释——有图有真相!

[复制链接]

出0入0汤圆

发表于 2011-6-5 20:32:35 | 显示全部楼层 |阅读模式
如题,端午节废寝忘食奋斗三天出结果——(OV7670+FIFO+3.0TFT)+代码、思想详细注释——有图有真相!
一直都是从神坛拿东西,这回共享一回,有详细注释。
摄像头模块是guanfu_wang那儿买的,效果很牛X!
以下是主函数中说明:
/***********************************************************
XXXX:Designed by LuoFaJiang —— 刺客        
                如有雷同,当没看见!
说明:该程序中SCCB部分及摄像头初始化部分照抄guanfu_wang的,表示感谢哈
在这儿给他打个小广告哈:http://shop37116146.taobao.com/
其余FIFO部分为参照guanfu_wang的程序及datasheet自己写的,第一次看着
英文资料弄,比较头痛。

感觉思想不错,给大家分享下,希望对初学者有帮助!
————————————————————————————————————
————————————————————————————————————
主要思想为:
    始终保持FIFO片选和读(WEN)有效(这个和guanfu_wang的例程应该是
不一样),在进入循环前,首先FIFO_WRST_L();为FIFO第一次复位做准备,然后
等待帧中断(VSYNC),在中断中,首先判断前一帧是否写完,如果没写完,
就不要这一帧的数据,退出中断继续写上一帧,如果写完,就复位写FIFO,
开始写入数据,然后(其实和FIFO几乎同步,但是写TFT比写F IFO慢
得多,故不用担心数据出错,同时能保证高效和数据准确)复位读FIFO,开
始写TFT,如此循环。
    总的说来,程序流程设计效率还是比较高(具体多少帧/S没算过,大概可
以达到诺基亚7100S手机摄像头2/5的速度,大概在5~8帧/S),还说过得去吧,呵呵
我已经很满足了...
—————————————————————————————————————
—————————————————————————————————————

编程环境:
          AVR Studio4.17 + WINAVR2010
硬件环境:
          Mega128 @ 16M  使用Mega128在3.3V下小小超到16M,比较稳定)
          TFT为WQVGA3.0寸240*400屏,安富莱的,驱动为SPFD5420A

注:程序中delay.h为修改过的延时函数,针对8M晶振,包含的东西比较繁杂,
    ,所以就不加进来了,大家可以自己写一个代替,但是建议大家用库的延时
        函数,否则一优化就被和谐了!!!

其中刷屏速度没测过,或许还能高一点,哪位师兄搞出更优化的说一声哈!!!

再有,下面图片是在傍晚用手机照的,手机130W的像素,大家将就看了,另外,接线
是自己飞线,没画原理图,接线在程序定义里面都有,你懂的!
先贴主函数代码:(全部程序在下面链接)
int main(void)
{
   PIN_Init();          //TFT引脚初始化
   T_SPI_Init();        //SPI初始化
   TFT_Init();          //TFT初始化
   Pant(0x0000);            //TFT清屏

   Sensor_Init();       //传感器初始化
   M128_INT01_Init();   //外部中断0,1初始化

   FIFO_OE_L();         //FIFO片选使能
   FIFO_WEN_H();        //FIFO写使能
   FIFO_WRST_L();       //为FIFO第一次复位做准备
   
   asm("sei");          //开全局中断
   PORTA=0xff;
   DDRA=0xff;           //A端口输出,用于下面设置TFT窗口参数           
   Address_set(0,0,239,319);//设置TFT窗口参数为240*320
   PORTA=0xff;
   DDRA=0x00;           //A端口上拉输入,以免影响摄像头和TFT数据传输
//*********************************
//*********************************
   while(1)
   {
       if(!Frame_Writed)       //查询该帧图像是否没有写过
        {                      //写过,就不再写,等待下一帧
           Frame_Write_State=1;//正在写TFT
           Write_Picture();    //写TFT
               Frame_Write_State=0;//写完TFT
               Frame_Writed=1;     //该帧图像被写过  
          }  
        while(Frame_Writed){}  //等待下一帧图像来临
   }
//*********************************
//*********************************

   return 0;
}
点击此处下载 ourdev_646037ZRMHTO.rar(文件大小:189K) (原文件名:(OV7670+FIFO+3.0TFT)+代码、思想详细注释.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2011-6-5 20:35:15 | 显示全部楼层

(原文件名:全家福.jpg)


(原文件名:寝室楼及地面.jpg)


(原文件名:楼2.jpg)


(原文件名:还是寝室楼.jpg)


(原文件名:干掉TFT.jpg)


(原文件名:对面寝室楼1.jpg)


(原文件名:对面楼.jpg)


(原文件名:PCB_AVR3.0TFT.JPG)

点击此处下载 ourdev_646035K678ZP.pdf(文件大小:38K) (原文件名:OV767_FIFO_SCH.pdf)

(原文件名:Mega28主板.jpg)

出0入0汤圆

发表于 2011-6-5 20:57:32 | 显示全部楼层
今天真是太幸运了。一进来就发现我离楼主这么近.

出0入0汤圆

发表于 2011-6-5 20:58:23 | 显示全部楼层
顶上去!!!

出0入0汤圆

发表于 2011-6-5 20:59:23 | 显示全部楼层
好帖

出0入0汤圆

 楼主| 发表于 2011-6-5 21:01:53 | 显示全部楼层
回复【2楼】xkdwangcs
-----------------------------------------------------------------------
小黑屋啊,呵呵

出0入0汤圆

发表于 2011-6-5 21:05:57 | 显示全部楼层
恭喜楼主 http://v.youku.com/v_show/id_XMjU4NjUxNjQw.html

出0入0汤圆

 楼主| 发表于 2011-6-5 21:19:54 | 显示全部楼层
回复【6楼】wangguanfu
-----------------------------------------------------------------------

老大来了哇,还附带打个小广告,呵呵,拜老大!!!

出0入0汤圆

 楼主| 发表于 2011-6-5 21:22:09 | 显示全部楼层
没事儿干,自己顶一个!

出0入0汤圆

发表于 2011-6-6 18:20:59 | 显示全部楼层
好贴

出0入0汤圆

发表于 2011-6-6 18:42:43 | 显示全部楼层
呵呵 学习学习

出0入0汤圆

发表于 2011-6-7 09:55:36 | 显示全部楼层
楼主厉害!赞

问问,连线这么长不会有影响吗?

出0入0汤圆

发表于 2011-6-7 11:10:43 | 显示全部楼层
好帖,顶!

出0入0汤圆

 楼主| 发表于 2011-6-7 19:02:51 | 显示全部楼层
回复【11楼】zenl0039
-----------------------------------------------------------------------

其实也不算长,应该是FIFO驱动能力很好,原本加了NOP小延时了一个(程序中可以看到),后来去掉了也没问题。

出0入0汤圆

发表于 2011-6-7 19:06:04 | 显示全部楼层
cool

出0入0汤圆

发表于 2011-6-9 22:41:42 | 显示全部楼层
回复【楼主位】LuoFaJiang
-----------------------------------------------------------------------

一定要顶啊……

出0入0汤圆

发表于 2011-6-20 09:54:08 | 显示全部楼层
学习中

出0入0汤圆

 楼主| 发表于 2011-11-29 13:36:53 | 显示全部楼层
话说前一段时间没事干,编了个定时器程序测了一下,达到8帧/s,还是不错的。

出140入0汤圆

发表于 2011-11-29 14:02:56 | 显示全部楼层
应该很好玩~

出0入0汤圆

发表于 2011-12-2 16:36:25 | 显示全部楼层
希望能帮上忙

出0入0汤圆

发表于 2011-12-26 19:14:31 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2011-12-27 07:23:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-9 18:10:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-10 17:40:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-3 15:39:13 | 显示全部楼层
能配置OV7670至400*240么?这样屏幕就能满屏啊?

出0入0汤圆

发表于 2012-4-5 16:43:52 | 显示全部楼层
学习了! 谢谢

出0入0汤圆

发表于 2012-4-5 23:14:24 | 显示全部楼层
摄像头多少米一个?

出0入0汤圆

发表于 2012-5-22 20:09:45 | 显示全部楼层
所有摄像头问题都顶

出0入0汤圆

发表于 2012-6-14 12:25:26 | 显示全部楼层
非常好

出0入0汤圆

发表于 2012-6-25 16:12:14 | 显示全部楼层
最近开始有兴趣,谢谢楼主,只是附件暂时下不来,呵呵

出0入0汤圆

发表于 2012-6-25 16:15:18 | 显示全部楼层
留着,后面有空看

出0入0汤圆

发表于 2012-6-25 21:35:21 | 显示全部楼层
为什么附件还是无法下载呢?楼主能给我发一份么?totoro0130@163.com,多谢

出0入85汤圆

发表于 2012-6-25 21:44:38 | 显示全部楼层
LuoFaJiang 发表于 2011-6-5 20:35
(原文件名:全家福.jpg)


你这个TFT是什么型号?用M128全屏刷新迟钝不?

出0入0汤圆

 楼主| 发表于 2012-6-25 23:16:04 | 显示全部楼层
omg123 发表于 2012-6-25 21:35
为什么附件还是无法下载呢?楼主能给我发一份么?,多谢

附件已经重新上传!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-6-25 23:18:33 | 显示全部楼层
packy_pan 发表于 2012-4-3 15:39
能配置OV7670至400*240么?这样屏幕就能满屏啊?

可以的,只是这样子视野就小了,因为在QVGA时是亚采样的,用240X400就不能亚采样了

出0入0汤圆

 楼主| 发表于 2012-6-25 23:19:53 | 显示全部楼层
lu0718 发表于 2012-4-5 23:14
摄像头多少米一个?

王老大那儿买的,85大洋

出0入0汤圆

 楼主| 发表于 2012-6-25 23:20:34 | 显示全部楼层
zsulrq 发表于 2012-6-25 16:12
最近开始有兴趣,谢谢楼主,只是附件暂时下不来,呵呵

附件已经重新上传,在后面回帖处

出0入0汤圆

 楼主| 发表于 2012-6-25 23:24:12 | 显示全部楼层
marshallemon 发表于 2012-6-25 21:44
你这个TFT是什么型号?用M128全屏刷新迟钝不?

SPFD5420A的驱动器,现在刷摄像头频率为8FPS,对跑16M的AVR来说,个人觉得很不错了,相对于72M的STM32来说的话,STM32
的IO速度感觉有点坑爹

出0入0汤圆

发表于 2012-6-25 23:40:27 | 显示全部楼层
不错 手里有一个ov6620 有时间可以捣鼓下

出0入85汤圆

发表于 2012-6-26 08:54:43 | 显示全部楼层
LuoFaJiang 发表于 2012-6-25 23:24
SPFD5420A的驱动器,现在刷摄像头频率为8FPS,对跑16M的AVR来说,个人觉得很不错了,相对于72M的STM32来 ...

8FPS?那不是很迟钝了?

出0入0汤圆

 楼主| 发表于 2012-6-26 11:59:10 | 显示全部楼层
marshallemon 发表于 2012-6-26 08:54
8FPS?那不是很迟钝了?

你也不想想,这是AVR,晶振才16M,自己算算数据量好大,要快就搞STM32,30+FPS!搞得不好STM32也就15FPS的样子。

出0入0汤圆

发表于 2012-6-26 12:19:22 | 显示全部楼层
现在好像还是不能下载啊,先留个脚印

出0入85汤圆

发表于 2012-6-26 21:33:18 | 显示全部楼层
LuoFaJiang 发表于 2012-6-26 11:59
你也不想想,这是AVR,晶振才16M,自己算算数据量好大,要快就搞STM32,30+FPS!搞得不好STM32也就15FPS ...

驱动稍大尺寸TFT,估计STM32F4系列的还可以

出0入0汤圆

 楼主| 发表于 2012-6-27 21:21:51 | 显示全部楼层
marshallemon 发表于 2012-6-26 21:33
驱动稍大尺寸TFT,估计STM32F4系列的还可以

我说的是驱动OV7670刷TFT

出0入0汤圆

 楼主| 发表于 2012-6-27 21:24:00 | 显示全部楼层
fuchenyang 发表于 2012-6-26 12:19
现在好像还是不能下载啊,先留个脚印

37楼有重新上传的代码包!

出0入0汤圆

发表于 2012-6-28 12:06:37 | 显示全部楼层
LuoFaJiang 发表于 2012-6-27 21:24
37楼有重新上传的代码包!

下载了,谢谢

出0入0汤圆

发表于 2012-6-28 16:46:22 | 显示全部楼层
厉害啊,最近才学习AVR

出0入0汤圆

发表于 2012-7-11 17:06:47 | 显示全部楼层
太谢谢了。正在学习如何用摄像头。

出0入0汤圆

发表于 2012-7-28 01:44:48 | 显示全部楼层
mark,想用msp430搞,先看看

出0入0汤圆

发表于 2012-7-31 00:36:22 | 显示全部楼层
不知道楼主的pgm_read_byte()是在哪里定义的?怎么着不到?

出0入0汤圆

发表于 2012-7-31 12:48:39 | 显示全部楼层
谢谢楼主,抓紧时间看!

出0入0汤圆

发表于 2012-8-1 08:43:11 | 显示全部楼层
颜色不对,红色变成淡红色,头疼!!!

出0入0汤圆

发表于 2012-9-20 15:42:32 | 显示全部楼层
给力. 带劲!!

出0入0汤圆

发表于 2012-11-2 09:43:24 | 显示全部楼层
mark 一下

出0入0汤圆

发表于 2013-2-6 16:28:06 | 显示全部楼层
有用,学习下

出0入0汤圆

发表于 2013-2-6 23:33:21 | 显示全部楼层
lz的atmega128开发板,我也有一块一模一样的啊TS8900-M128

出0入0汤圆

发表于 2013-3-4 11:02:24 | 显示全部楼层
找到了  哈哈  发哥  顶了

出0入0汤圆

 楼主| 发表于 2013-3-18 00:11:42 | 显示全部楼层
dboyzju 发表于 2013-2-6 23:33
lz的atmega128开发板,我也有一块一模一样的啊TS8900-M128

呵呵呵,看着亲切啊!

出0入0汤圆

 楼主| 发表于 2013-3-18 00:12:06 | 显示全部楼层
ssssnancy 发表于 2013-3-4 11:02
找到了  哈哈  发哥  顶了

嗯,慢慢整嘛

出0入0汤圆

发表于 2013-3-18 22:13:48 | 显示全部楼层
学习Winavr的留个爪印。

出0入0汤圆

发表于 2013-3-18 22:49:40 来自手机 | 显示全部楼层
不错!挺好玩的

出0入0汤圆

发表于 2013-4-6 11:18:45 | 显示全部楼层
LuoFaJiang 发表于 2011-6-5 20:35
(原文件名:全家福.jpg)

好贴要顶一下

出0入0汤圆

发表于 2013-4-7 18:39:56 | 显示全部楼层
不错,我也刚刚开始玩摄像头,请教了!

出0入0汤圆

发表于 2013-4-19 19:33:38 | 显示全部楼层
膜拜一下!

出0入0汤圆

发表于 2013-4-19 20:14:33 | 显示全部楼层
一直有这个想法,做一个摄像头一个显示器,做成遥控的。
哈哈,留印
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表