智能车制作

标题: DMA求救 有贡献! [打印本页]

作者: ☆_。寒泉..+    时间: 2012-5-7 19:18
标题: DMA求救 有贡献!
大家有木有K60  DMA 的方法啊,我怎么不明白DMA怎么用的呢?有没有教程什么的,啥意思啊,网上资料都是介绍DMA怎么用的,程序都是写好的,就是没有说为什么这么写,这么写虽然是必须的,但是也要说清楚是为什么吧,就是有什么用,这句为下一句铺垫什么的,啥都没有 ,郁闷死了,也不知道怎么去学习,茫茫大学,也没有教这个的!


作者: 野火    时间: 2012-5-7 19:37
一般就 开时钟 和 设置复用 在最前面,开中断在后面,中间的,没什么顺序的。除了 编程手册 特定指明的除外……
作者: hjk    时间: 2012-5-7 19:45
其实刚开始做都是不知道为什么,等做过了再回头想想就明白了
作者: ☆_。寒泉..+    时间: 2012-5-7 21:23
野火 发表于 2012-5-7 19:37
一般就 开时钟 和 设置复用 在最前面,开中断在后面,中间的,没什么顺序的。除了 编程手册 特定指明的除外 ...

我是摄像头的,请问我用内部AD还有必要用dma么?

作者: liaogao2    时间: 2012-5-7 21:35
这是别人写的程序   希望能帮到你
作者: luojihao24669    时间: 2012-5-7 22:08
真想比较“活用”DMA的话,你还是老实的看datasheet。然后在参看别人的程序,不要想一口吃成胖子。
作者: 野火    时间: 2012-5-7 22:13
☆_。寒泉..+ 发表于 2012-5-7 21:23
我是摄像头的,请问我用内部AD还有必要用dma么?

用了话,可以更快的速度……

我没写过,给个参考的DMA传输ADC的资料给你看看吧:[attach]24236[/attach]

第78页,有参考的代码:
7.5.1   Requirements
The input to the ADC0 must be sampled every 1 ms. To achieve this, a 32-bit AD
command word must be supplied to the ADC0_SC1A (0x4003B000) every 1 ms, when
the module is able to accept the command. The command word is located in the internal
SRAM. This example only requires a single command word to be provided to the AD. It
is stored in a variable labeled "command." After the AD has completed the conversion,
the result is moved from the AD result register ADC0_RA, located at 0x4003B010, to
address 0x1FFF9000 in internal SRAM. Figure 7-7 illustrates the functionality of this
example.


作者: f43    时间: 2012-5-7 22:33
dma处理的时候,数据的量一定要注意,不要传输大量的数据,否则会乱码
作者: 月嘉愚生    时间: 2012-5-7 23:02
我觉得先看别人的资料学起来有个参考,会好一地啊
作者: ☆_。寒泉..+    时间: 2012-5-7 23:07
野火 发表于 2012-5-7 22:13
用了话,可以更快的速度……

我没写过,给个参考的DMA传输ADC的资料给你看看吧:

谢谢了,对了,摄像头的io读取ad之后赋值给变量,那么这样不是已经采集到信息了么,DMA还起什么作用呢,难道说还有别的办法么,其实我很想用内部AD,不知道内部AD与DMA能不恩给你合起来用,呵呵

作者: 野火    时间: 2012-5-8 18:08
☆_。寒泉..+ 发表于 2012-5-7 23:07
谢谢了,对了,摄像头的io读取ad之后赋值给变量,那么这样不是已经采集到信息了么,DMA还起什么作用呢,难 ...

摄像头的io读取ad之后赋值给变量 ,这个是CPU控制的……会占用CPU时间,而且传输速度不如 DMA的快……

实际上,还有个 DMA 控制器,独立于CPU,你可以把他当成另外一个特殊的CPU,他就是等待ADC转换完成,然后自动传输数据……

给你的资料,那里就有讲怎么结合 DMA 和 ADC 的……





作者: ☆_。寒泉..+    时间: 2012-5-11 08:25
野火 发表于 2012-5-8 18:08
摄像头的io读取ad之后赋值给变量 ,这个是CPU控制的……会占用CPU时间,而且传输速度不如 DMA的快……

...

哦,谢谢啦
作者: czrushman    时间: 2012-5-11 12:14
我们这边有人用  但是我不会
作者: czrushman    时间: 2012-5-11 12:15
楼主你这个帖子会火的
作者: jesson    时间: 2012-5-11 15:14
去用野火的库 肯定就能学会了
作者: 柯南一梦    时间: 2012-5-11 17:34
你的是数字摄像头吗。。我用的是模拟像头 用过DMA  发现效果不好。。
作者: z_7    时间: 2012-5-12 08:47
☆_。寒泉..+ 发表于 2012-5-7 21:23
我是摄像头的,请问我用内部AD还有必要用dma么?

跟外部AD的设置就源地址不一样吧,可能请求源也不一样
作者: ☆_。寒泉..+    时间: 2012-5-12 18:00
柯南一梦 发表于 2012-5-11 17:34
你的是数字摄像头吗。。我用的是模拟像头 用过DMA  发现效果不好。。

我的是CCD的
作者: 牛博    时间: 2012-6-3 17:08
先请求dma      之后设置DMA





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