智能车制作

 找回密码
 注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: yangkuanqaz8598
打印 上一主题 下一主题

[讨论] K60 的 DMA 部分

  [复制链接]

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
11#
 楼主| 发表于 2013-2-17 17:22:37 | 显示全部楼层
suebillt 发表于 2013-2-17 12:56
IO的触发是外部中断中设置的DMA触发,我想ADC也是由中断触发DMA

还有疑问就是,虽然知道源地址应该设定为ADC0的结果寄存器地址,可是在C代码里面应该写多少呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
12#
 楼主| 发表于 2013-2-18 09:50:33 | 显示全部楼层
suebillt 发表于 2013-2-17 22:51
就是寄存器地址吧,baseADDRess + 10h

可以根据ADC memory map 里面的 absolut address(hex)来定吗?  也就地址就是    0X4003B010
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
13#
 楼主| 发表于 2013-2-18 12:23:54 | 显示全部楼层
1174544639 发表于 2013-2-18 11:49
AD、FTM等等触发DMA都在相应的模块里有介绍吧,在英文数据手册里有。我也在研究DMA,多多交流啊

对哦,嗯嗯,去研究下AD模块里面的DMA触发位
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
14#
 楼主| 发表于 2013-2-18 21:20:05 | 显示全部楼层
suebillt 发表于 2013-2-18 13:52
那个是宏么,一样的吧

下面就是ADC结果寄存器的相关宏定义了,但是看来看去还是不能理解,到底哪个才等价于ADC0_RA的实际地址值,迫于不解,只能直接使用0x4000B010这样的了。

/* ADC - Peripheral instance base addresses */
/** Peripheral ADC0 base pointer */
#define ADC0_BASE_PTR                            ((ADC_MemMapPtr)0x4003B000u)
/** Peripheral ADC1 base pointer */
#define ADC1_BASE_PTR                            ((ADC_MemMapPtr)0x400BB000u)

/* ADC - Register accessors */

#define ADC_R_REG(base,index)         ((base)->R[index])                    

/* R Bit Fields */
#define ADC_R_D_MASK                             0xFFFFu
#define ADC_R_D_SHIFT                            0
#define ADC_R_D(x)                               (((uint32_t)(((uint32_t)(x))<<ADC_R_D_SHIFT))&ADC_R_D_MASK)


/* ADC - Register instance definitions */
/* ADC0 */

#define ADC0_RA                                  ADC_R_REG(ADC0_BASE_PTR,0)
#define ADC0_RB                                  ADC_R_REG(ADC0_BASE_PTR,1)

/* ADC1 */
#define ADC1_RA                                  ADC_R_REG(ADC1_BASE_PTR,0)

/* ADC - Register array accessors */
#define ADC0_R(index)                            ADC_R_REG(ADC0_BASE_PTR,index)
#define ADC1_R(index)                            ADC_R_REG(ADC1_BASE_PTR,index)

#define ADC1_RB                                  ADC_R_REG(ADC1_BASE_PTR,1)

回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
15#
 楼主| 发表于 2013-2-19 02:03:26 | 显示全部楼层
本帖最后由 yangkuanqaz8598 于 2013-2-19 02:14 编辑
suebillt 发表于 2013-2-18 23:46
头文件看的很头疼啊,我也是,我DMA开好了,不过有点小bug

哈哈,我现在没有核心板,调试不了,等你调试好了,希望能给代码借鉴哈!官方检测方法中,直接采样的方法需要采样频率大于20KHz,这个换到ADC的设置是对应哪个参数呢,是ADC的时钟频率吗?
还有一个问题是,如果选择传感器直接采样的话。那在处理数据方面,是把所有传感器采样完成一次采样后,就进行所有传感器的下一次采样吗?他们之间会需要一定的时间间隔吗?

回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
16#
 楼主| 发表于 2013-2-19 11:27:12 | 显示全部楼层

RE: K60 的 DMA 部分

suebillt 发表于 2013-2-19 11:22
ADC我没试过啊,你继续女里努力

哈哈,今天核心板到了,我也测试一把,一起继续努力继续努力
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
17#
 楼主| 发表于 2013-3-12 19:38:42 | 显示全部楼层
m__dd 发表于 2013-3-12 19:29
这里对DMA有详细描述http://www.znczz.com/forum.php?mod=viewthread&tid=112227

谢谢了,这个对DMA说的真心详细
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 01:24 , Processed in 0.041189 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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