智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2060|回复: 9
打印 上一主题 下一主题

[摄像头] 摄像头组求助

[复制链接]

5

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
730
QQ
威望
409
贡献
183
兑换币
139
注册时间
2012-9-12
在线时间
69 小时
跳转到指定楼层
1#
发表于 2012-11-22 18:15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用DMA+ADC采集模拟摄像头图像。图像很清楚,可是总是先发来一副远一点的一方,又发来一副近一点的地方,就好像把一场当做两场来采了,我测了场中断没问题,PAL信号,一场大约20ms。不知道怎么解决,跪求大神相助

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
2#
发表于 2012-11-22 18:27:33 | 只看该作者
先发来一副远一点的一方,又发来一副近一点的地方,就好像把一场当做两场来采了??有没有图片?
是不是采集到的图像由两幅图像组成,上面那副是本次的采集图像,下面那副是下一场的采集图像?
看这文档,有讲到这问题:
http://www.znczz.com/thread-111159-1-1.html

回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
730
QQ
威望
409
贡献
183
兑换币
139
注册时间
2012-9-12
在线时间
69 小时
3#
 楼主| 发表于 2012-11-22 22:18:13 | 只看该作者
野火 发表于 2012-11-22 18:27
先发来一副远一点的一方,又发来一副近一点的地方,就好像把一场当做两场来采了??有没有图片?
是不是采 ...

感谢你的回答!我的情况是这样的:就像是把一副图片从中间拦腰截断了,第一次发上半部分,下一次发下半部分。然后周而复始的这样子。
回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
730
QQ
威望
409
贡献
183
兑换币
139
注册时间
2012-9-12
在线时间
69 小时
4#
 楼主| 发表于 2012-11-22 22:23:08 | 只看该作者
J-sir 发表于 2012-11-22 22:18
感谢你的回答!我的情况是这样的:就像是把一副图片从中间拦腰截断了,第一次发上半部分,下一次发下半部 ...

一幅图像我只采其中的60行,但是用了DMA以后就采集了后面我本来不想要的那些行,并储存在下一幅的图像数组里。我并没有这样设置……还有我的事模拟摄像头。请帮我看看初始化的对吗?

void dma_init(){
  SIM_SCGC6|=SIM_SCGC6_DMAMUX_MASK;//打开DMA多路复用器时钟
  SIM_SCGC7|=SIM_SCGC7_DMA_MASK;//打开DMA模块时钟
  DMAMUX_CHCFG0=DMAMUX_CHCFG_SOURCE(41);//DMA通道0对应41号DMA请求,即ADC1,参阅Chip Configuration
  DMA_TCD0_SADDR = (uint32_t)&(ADC_R_REG(ADC1_BASE_PTR, 0));
  
  DMA_TCD0_SOFF = 0;//每次传送源地址不变
  DMA_TCD0_CITER_ELINKNO=DMA_CITER_ELINKNO_CITER(lie_max);//当前主循环次数,采集点数
  DMA_TCD0_BITER_ELINKNO=DMA_BITER_ELINKNO_BITER(lie_max);//起始主循环次数,采集点数
  DMA_TCD0_ATTR = DMA_ATTR_SSIZE(0) | DMA_ATTR_DSIZE(0);//源数据宽度8bit,目的数据宽度8bit
  DMA_TCD0_NBYTES_MLNO = DMA_NBYTES_MLNO_NBYTES(1);//每次读取一字节
  DMA_TCD0_SLAST = 0;//主循环结束后源地址0回写tcd
  DMA_TCD0_DLASTSGA = 0;
  DMA_TCD0_DADDR=(uint32)image;//设置目的地址,image数组第一个元素
  DMA_TCD0_DOFF=1;//每次写目的地址加1
  DMA_TCD0_CSR= DMA_CSR_DREQ_MASK;//DMA通道0主循环结束后停止硬件请求
  DMA_TCD0_CSR|=DMA_CSR_INTMAJOR_MASK;//使能DMA0中断
  DMAMUX_CHCFG0|=DMAMUX_CHCFG_ENBL_MASK;//DMA通道0使能
}
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
5#
发表于 2012-11-22 22:41:20 | 只看该作者
DMA+ADC?
初步觉得,是不是采集的点太少就停止采集了?
回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
730
QQ
威望
409
贡献
183
兑换币
139
注册时间
2012-9-12
在线时间
69 小时
6#
 楼主| 发表于 2012-11-22 23:31:49 | 只看该作者
野火 发表于 2012-11-22 22:41
DMA+ADC?
初步觉得,是不是采集的点太少就停止采集了?

嗯,是采的很少,但是为什么采的少就会出现问题呢?
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
7#
发表于 2012-11-22 23:39:20 | 只看该作者
J-sir 发表于 2012-11-22 23:31
嗯,是采的很少,但是为什么采的少就会出现问题呢?

采集不够一场,你就停止采集了……
回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
730
QQ
威望
409
贡献
183
兑换币
139
注册时间
2012-9-12
在线时间
69 小时
8#
 楼主| 发表于 2012-11-23 14:48:53 | 只看该作者
野火 发表于 2012-11-22 23:39
采集不够一场,你就停止采集了……

对啊,大家不都是这么干的么…………一场300多行,哪有人全采啊。
回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
730
QQ
威望
409
贡献
183
兑换币
139
注册时间
2012-9-12
在线时间
69 小时
9#
 楼主| 发表于 2012-11-23 16:54:33 | 只看该作者
我终于找到问题了!!!!!血的教训啊!!!开中断之间一定要先清中断标志位。不然在你关掉中断的过程硬件依然会把标志位置位的。哈哈哈哈
回复 支持 反对

使用道具 举报

5

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
730
QQ
威望
409
贡献
183
兑换币
139
注册时间
2012-9-12
在线时间
69 小时
10#
 楼主| 发表于 2012-11-23 17:01:30 | 只看该作者
我是SB哈哈哈和
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 07:27 , Processed in 0.087116 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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