智能车制作

标题: DMA摄像头采集数据不足? [打印本页]

作者: 天地亁堃    时间: 2012-9-13 18:38
标题: DMA摄像头采集数据不足?
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):
行中断还能优化吗?难道只能选择分频了?
作者: yukunlinykl    时间: 2012-9-13 20:27
是不是中断内部代码执行时间过长,导致丢中断了?优化一下代码吧。
你也可以用汇编写。
不过我推荐用编译器的优化选项。

作者: daiyinger    时间: 2012-9-13 20:41
你的主频多少?
作者: 天地亁堃    时间: 2012-9-13 21:15
yukunlinykl 发表于 2012-9-13 20:27
是不是中断内部代码执行时间过长,导致丢中断了?优化一下代码吧。
你也可以用汇编写。
不过我推荐用编译 ...

我是新手啊,怎么编译优化啊?
作者: 天地亁堃    时间: 2012-9-13 21:15
daiyinger 发表于 2012-9-13 20:41
你的主频多少?

超到200M了
作者: daiyinger    时间: 2012-9-13 21:18
你的DMA是外部触发的?
作者: 天地亁堃    时间: 2012-9-13 21:24
daiyinger 发表于 2012-9-13 21:18
你的DMA是外部触发的?

是的,PCLK触发中断。每一个点都捕捉,可以捕捉到500*200,可是行数最高也就220无法提高。
作者: zjh328986199    时间: 2012-9-14 00:11
天地亁堃 发表于 2012-9-13 21:24
是的,PCLK触发中断。每一个点都捕捉,可以捕捉到500*200,可是行数最高也就220无法提高。

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

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


作者: yukunlinykl    时间: 2012-9-14 01:04
我XS128都能采满图像,关于编译优化,你看看 codewarrior 的 help 就知道了,上面讲的很详细。
作者: 天地亁堃    时间: 2012-9-14 15:13
zjh328986199 发表于 2012-9-14 00:11
500*200*8byte=100k字节,少年你用的是那一块芯片,我用过最大的也只有64KB字节的。。。
而且你确定你需 ...

K60,只是想做一个捕捉图像的程序。

作者: 天地亁堃    时间: 2012-9-14 15:14
yukunlinykl 发表于 2012-9-14 01:04
我XS128都能采满图像,关于编译优化,你看看 codewarrior 的 help 就知道了,上面讲的很详细。

好的,谢谢了。




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2