智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 29058|回复: 147
打印 上一主题 下一主题

野火独家提供:Kinetis 多路 脉冲累加 的实现方法

  [复制链接]

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
跳转到指定楼层
1#
发表于 2012-3-30 06:15:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 野火 于 2012-3-30 06:32 编辑

哈哈 , Kinetis 系列 只有 一路 LPT 模块 ,要实现 多路脉冲累加 (不进入中断服务函数,不占用 CPU 资源) ,难道就没方法了吗?

就目前网上公开的资料来看,貌似还没有公开实现多路脉冲累加的方法吧?都是靠 FTM 的 输入捕捉 或者 GPIO 的触发中断 ,在中断函数里进来累加。

其实,Kinetis 还有其他模块,是 可以实现 不低于 10 路 的  脉冲累加 完全可以不进入中断服务函数,由硬件进行累加。10路以上,完全满足智能车的需要……

实测 30KHz 的PWM脉冲波 ,用PIT 来 1秒定时,读取到脉冲波:30012个 ,比 LPT误差还更小……

你们能猜到是什么模块吗?{:soso_e113:} 说说实现的思路呗……

哈哈,楼层顶到 100 层,就 公开 方法 和 代码 ……


补充内容 (2012-3-30 13:59):


你们的灌水能力极强啊……
代码见 110 楼 哦……



补充内容 (2012-3-30 14:18):

代码链接http://www.znczz.com/forum.php?m ... p;page=11#pid499749

评分

1

查看全部评分

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
来自 110#
 楼主| 发表于 2012-3-30 13:58:25 | 只看该作者
本帖最后由 野火 于 2012-3-30 14:14 编辑

o(∩_∩)o 哈哈,有人公布了方法思路了:http://www.znczz.com/thread-97128-1-1.html

16路的DMA,可以提供16路的脉冲累加……15位的计数(可以利用中断来拓展)……支持全部IO……

不过那里帖子上说的,有点需要更正:
大材小用
额……这个不算大材小用吧?应该说是物尽其用……一般工程项目,不会连16个DMA通道都用光吧??……而如果放在不用,那不是浪费吗?

没有提供源码
我们说好了开源……那就不算没提供源代码啦……

指定什么源地址和目的地址均可  
这个不是的,不同的地址,有可能会干扰到cpu的运行……我们这里设置为只读寄存器,不干扰CPU,这样速度会更快……如果设置为 flash 地址 ,会无法中断 ,如果设置为 RAM 地址,会影响CPU读取RAM 。

DMA循环计数器最大计数为32767 。
这个可以增加个中断来实现拓展,对CPU的影响几乎忽略不计。

说开源,就开源,下载地址



DMA_count_Init       初始化……
DMA_count_get       获取计数值……
DMA_count_reset     重新计数……

函数接口非常方便……

与 LPT 相比,我们的方法是巧妙借用了 DMA 每次传输,会自动减1 的功能 (硬件实现的)
而 LPT 则是一个计数器 ,两种的原理是不一样的……





本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

高级会员

Rank: 4

积分
865
威望
429
贡献
234
兑换币
280
注册时间
2013-2-27
在线时间
101 小时
毕业学校
集美大学
148#
发表于 2014-3-14 14:44:12 | 只看该作者
回复 支持 反对

使用道具 举报

25

主题

286

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1273

优秀会员奖章活跃会员奖章

QQ
威望
817
贡献
256
兑换币
297
注册时间
2013-2-24
在线时间
100 小时
147#
发表于 2013-4-14 01:56:55 | 只看该作者
回复 支持 反对

使用道具 举报

48

主题

493

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2947
威望
1774
贡献
469
兑换币
705
注册时间
2012-4-22
在线时间
352 小时
毕业学校
hgd
146#
发表于 2013-3-12 20:00:36 | 只看该作者
野火 发表于 2012-3-30 13:58
o(∩_∩)o 哈哈,有人公布了方法思路了:http://www.znczz.com/thread-97128-1-1.html

16路的DMA,可以提 ...

目的地址呢?需不需要再定义个数组存放10ms计数脉冲(测速),不超过100。或者其它好办法?
回复 支持 反对

使用道具 举报

14

主题

99

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1242
威望
760
贡献
412
兑换币
156
注册时间
2011-11-10
在线时间
35 小时
145#
发表于 2013-1-26 09:12:11 | 只看该作者
DMA脉冲计数器
回复 支持 反对

使用道具 举报

0

主题

92

帖子

0

精华

高级会员

Rank: 4

积分
725
威望
399
贡献
176
兑换币
243
注册时间
2012-11-20
在线时间
75 小时
144#
发表于 2012-12-13 15:11:54 | 只看该作者
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
143#
 楼主| 发表于 2012-12-3 08:44:08 | 只看该作者
dong130300 发表于 2012-12-2 09:00
火哥,你建的qq群满了,能再新建几个吗

可以的,你联系淘宝旺旺,他们会处理的
回复 支持 反对

使用道具 举报

4

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1175
威望
576
贡献
355
兑换币
276
注册时间
2012-4-15
在线时间
122 小时
142#
发表于 2012-12-2 09:00:47 | 只看该作者
火哥,你建的qq群满了,能再新建几个吗
回复 支持 反对

使用道具 举报

114

主题

857

帖子

0

精华

跨届大侠

不想吃天鹅肉的癞蛤蟆不是好癞蛤蟆~!

Rank: 10Rank: 10Rank: 10

积分
8662

活跃会员奖章优秀会员奖章在线王奖章论坛骨干奖章论坛元老奖章资源大师奖章

威望
3956
贡献
2014
兑换币
1429
注册时间
2012-3-4
在线时间
1346 小时
141#
发表于 2012-10-26 15:44:01 | 只看该作者
到底是硬件进行累加还是硬件自动减一啊
回复 支持 反对

使用道具 举报

7

主题

33

帖子

0

精华

高级会员

Rank: 4

积分
852
威望
445
贡献
273
兑换币
146
注册时间
2012-2-3
在线时间
67 小时
毕业学校
西南科技大学
140#
发表于 2012-9-15 18:31:17 | 只看该作者
给还是不给嘛 ?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 15:04 , Processed in 0.060964 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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