智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5482|回复: 12
打印 上一主题 下一主题

[采集类] 赐教。。一帧图像被截成了两段。。。

  [复制链接]

23

主题

106

帖子

0

精华

金牌会员

iven

Rank: 6Rank: 6

积分
2696
威望
585
贡献
1671
兑换币
60
注册时间
2009-12-11
在线时间
220 小时
跳转到指定楼层
1#
发表于 2010-5-23 22:57:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2贡献
本帖最后由 iven 于 2010-5-23 23:08 编辑




这是一帧图片,很奇怪的是被中间的东西隔开了,一旦被隔开,下面的部分就是重新开始的部分,而隔开的上半部分是结束的部分。

初步怀疑是场消隐,如果是这个问题,该怎么办呢?


附上场中断和行中断代码:是不是这个有问题?

  1. //+++++++++++++++行中断函数+++++++++++//
  2. #pragma CODE_SEG NON_BANKED
  3. void interrupt 10 Timer2_cow(void) //行中断

  4. {
  5. unsigned char time;
  6. TFLG1_C2F=1; //清行中断标志位
  7. hang_flag++;

  8. x++;//行
  9. if((x>=18)&&(x<=270)&&(x%9==0))
  10. {
  11. AD_Init() ;
  12. for(time=0;time<110;time++); //行消隐
  13. for(y=0;y<IMG_COLUMN;y++)
  14. {
  15. while(!ATD0STAT0_SCF);
  16. imageBuffer[z][y]= ATD0DR0L; //开始采集

  17. }
  18. z++;
  19. ATD0CTL2=0x00;
  20. }

  21. if(z==28){//大于采集的28行
  22. TIE_C2I=0;//关闭行中断
  23. TIE_C3I=1;//打开场中断
  24. send_image_data();//采集完成,串口发送采集到的图像
  25. }
  26. }
  27. //场中断
  28. #pragma CODE_SEG NON_BANKED
  29. void interrupt 11 timer3_chang(void) //场中断到来
  30. {
  31. DisableInterrupts;
  32. TFLG1_C3F=1; //清场中断标志位
  33. TIE_C2I=0; //关行中断
  34. x=0;y=0;z=0; //初始化采集数组

  35. TIE_C2I=1;//开行中断
  36. //TIE_C3I=0;//关场中断
  37. EnableInterrupts;
  38. }
复制代码

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
威望
253
贡献
45
兑换币
16
注册时间
2010-4-30
在线时间
5 小时
2#
发表于 2010-5-24 18:22:08 | 只看该作者
看看是不是采集时间长了,视频数据串了
回复

使用道具 举报

9

主题

123

帖子

0

精华

常驻嘉宾

猫爸爸

Rank: 8Rank: 8

积分
3602
威望
1062
贡献
1380
兑换币
318
注册时间
2009-12-11
在线时间
580 小时
3#
发表于 2010-5-24 19:23:27 | 只看该作者
AD采集3us一次,行40us左右,如果不超频,每行只能采40/3 个点,采多了就有问题了。
回复

使用道具 举报

23

主题

106

帖子

0

精华

金牌会员

iven

Rank: 6Rank: 6

积分
2696
威望
585
贡献
1671
兑换币
60
注册时间
2009-12-11
在线时间
220 小时
4#
 楼主| 发表于 2010-5-24 21:19:47 | 只看该作者
回复 3# cat888


    超频了,总线64   AD是16M   采集40个点应该没问题吧?
回复

使用道具 举报

23

主题

106

帖子

0

精华

金牌会员

iven

Rank: 6Rank: 6

积分
2696
威望
585
贡献
1671
兑换币
60
注册时间
2009-12-11
在线时间
220 小时
5#
 楼主| 发表于 2010-5-24 21:20:45 | 只看该作者
回复 2# huliang20


    可是我中断时序都正常啊。。按道理来说不应该串的呀。。。
回复

使用道具 举报

9

主题

123

帖子

0

精华

常驻嘉宾

猫爸爸

Rank: 8Rank: 8

积分
3602
威望
1062
贡献
1380
兑换币
318
注册时间
2009-12-11
在线时间
580 小时
6#
发表于 2010-5-25 07:40:41 | 只看该作者
回复  cat888


    超频了,总线64   AD是16M   采集40个点应该没问题吧?
iven 发表于 2010-5-24 21:19



    用示波器看看 采40个点到底用了多长时间。
回复

使用道具 举报

23

主题

106

帖子

0

精华

金牌会员

iven

Rank: 6Rank: 6

积分
2696
威望
585
贡献
1671
兑换币
60
注册时间
2009-12-11
在线时间
220 小时
7#
 楼主| 发表于 2010-5-26 08:36:58 | 只看该作者
回复 6# cat888


    看了一下,示波器场周期平均在13ms   行周期平均在42.5us。是不是正常的?
回复

使用道具 举报

9

主题

123

帖子

0

精华

常驻嘉宾

猫爸爸

Rank: 8Rank: 8

积分
3602
威望
1062
贡献
1380
兑换币
318
注册时间
2009-12-11
在线时间
580 小时
8#
发表于 2010-5-26 09:08:21 | 只看该作者
回复 7# iven


    13ms, ov7620?ov6620是20ms。你代码采40个点用了多长时间,这个是关键。
回复

使用道具 举报

4

主题

215

帖子

0

精华

高级会员

Rank: 4

积分
622
QQ
威望
475
贡献
55
兑换币
20
注册时间
2010-3-8
在线时间
46 小时
9#
发表于 2010-5-31 22:01:13 | 只看该作者
据说 你可以在场中断里面加一个判断  
我的意思是  如果单片机受到干扰 可能会误判中断信号
回复

使用道具 举报

8

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
威望
327
贡献
114
兑换币
20
注册时间
2009-7-27
在线时间
19 小时
10#
发表于 2010-6-1 12:37:49 | 只看该作者
注意电磁兼容性,如果不是软件原因,很可能是外部干扰,特别是在有电机工作的时候。建议在不使用电机的情况下,查看图像采集。若还有问题,若每行后面不是黑的就不存在点采多了的问题。还有,图像发送程序也可能导致这类问题的发生。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-30 00:01 , Processed in 0.539347 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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