智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4173|回复: 10
打印 上一主题 下一主题

DMA摄像头采集数据不足?

[复制链接]

9

主题

76

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4101

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1708
贡献
1133
兑换币
885
注册时间
2012-6-23
在线时间
630 小时
跳转到指定楼层
1#
发表于 2012-9-13 18:38:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3个中断,DMA一个,场一个,行一个,中断是嵌套的。场中开行,行中开DMA。大概也就捕捉400*200的图像,问题可能出现在哪里?
640*480的图像能捕捉吗?瓶颈在哪里啊?

补充内容 (2012-9-14 16:10):
问题找到了,每来一个行中断,运行行中断代码时会少掉一个行中断。
void portb_isr(void)
{
  PORTB_ISFR |=1;  //标志位清除
  if(V_cnt<=V)
  {
    DMA_ERQ|=2;   //开启DMA通道1
  }
  else
  {
   flag=1}}

补充内容 (2012-9-14 16:19):
行中断还能优化吗?难道只能选择分频了?

38

主题

1651

帖子

0

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
8770
威望
4444
贡献
2638
兑换币
1818
注册时间
2010-12-29
在线时间
844 小时
2#
发表于 2012-9-13 20:27:19 | 只看该作者
是不是中断内部代码执行时间过长,导致丢中断了?优化一下代码吧。
你也可以用汇编写。
不过我推荐用编译器的优化选项。
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2054
威望
1015
贡献
499
兑换币
306
注册时间
2011-10-3
在线时间
270 小时
3#
发表于 2012-9-13 20:41:52 | 只看该作者
你的主频多少?
回复 支持 反对

使用道具 举报

9

主题

76

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4101

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1708
贡献
1133
兑换币
885
注册时间
2012-6-23
在线时间
630 小时
4#
 楼主| 发表于 2012-9-13 21:15:38 | 只看该作者
yukunlinykl 发表于 2012-9-13 20:27
是不是中断内部代码执行时间过长,导致丢中断了?优化一下代码吧。
你也可以用汇编写。
不过我推荐用编译 ...

我是新手啊,怎么编译优化啊?
回复 支持 反对

使用道具 举报

9

主题

76

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4101

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1708
贡献
1133
兑换币
885
注册时间
2012-6-23
在线时间
630 小时
5#
 楼主| 发表于 2012-9-13 21:15:58 | 只看该作者
daiyinger 发表于 2012-9-13 20:41
你的主频多少?

超到200M了
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2054
威望
1015
贡献
499
兑换币
306
注册时间
2011-10-3
在线时间
270 小时
6#
发表于 2012-9-13 21:18:46 | 只看该作者
你的DMA是外部触发的?
回复 支持 反对

使用道具 举报

9

主题

76

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4101

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1708
贡献
1133
兑换币
885
注册时间
2012-6-23
在线时间
630 小时
7#
 楼主| 发表于 2012-9-13 21:24:38 | 只看该作者
daiyinger 发表于 2012-9-13 21:18
你的DMA是外部触发的?

是的,PCLK触发中断。每一个点都捕捉,可以捕捉到500*200,可是行数最高也就220无法提高。
回复 支持 反对

使用道具 举报

3

主题

210

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7551
威望
4052
贡献
1769
兑换币
1086
注册时间
2012-4-28
在线时间
865 小时
8#
发表于 2012-9-14 00:11:16 | 只看该作者
天地亁堃 发表于 2012-9-13 21:24
是的,PCLK触发中断。每一个点都捕捉,可以捕捉到500*200,可是行数最高也就220无法提高。

500*200*8byte=100k字节,少年你用的是那一块芯片,我用过最大的也只有64KB字节的。。。
而且你确定你需要这么大的分辨率么?

100(行)*200(列)的数据都够你玩的
ps:如果我没看错的话,前几届北科就是这个数据量...

回复 支持 反对

使用道具 举报

38

主题

1651

帖子

0

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
8770
威望
4444
贡献
2638
兑换币
1818
注册时间
2010-12-29
在线时间
844 小时
9#
发表于 2012-9-14 01:04:51 | 只看该作者
我XS128都能采满图像,关于编译优化,你看看 codewarrior 的 help 就知道了,上面讲的很详细。
回复 支持 反对

使用道具 举报

9

主题

76

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4101

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1708
贡献
1133
兑换币
885
注册时间
2012-6-23
在线时间
630 小时
10#
 楼主| 发表于 2012-9-14 15:13:31 | 只看该作者
zjh328986199 发表于 2012-9-14 00:11
500*200*8byte=100k字节,少年你用的是那一块芯片,我用过最大的也只有64KB字节的。。。
而且你确定你需 ...

K60,只是想做一个捕捉图像的程序。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 13:15 , Processed in 0.139544 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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