智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 28035|回复: 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 小时
2#
 楼主| 发表于 2012-3-30 06:17:54 | 显示全部楼层
只要楼层顶到 100 层 ,野火 就 公开 多路 脉冲累加 的代码……

如果清明节回来,没人感兴趣,顶不到 100 层 ,也公开代码吧……
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
3#
 楼主| 发表于 2012-3-30 10:10:25 | 显示全部楼层
凌心 发表于 2012-3-30 08:59
亲,包邮哦……

亲。猜猜用什么模块啊……

回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
4#
 楼主| 发表于 2012-3-30 10:35:27 | 显示全部楼层
f43 发表于 2012-3-30 08:12
如果顶到了1000层,每人送个最小系统吧

  这哥们,太狠了……

回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
5#
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
6#
 楼主| 发表于 2012-3-30 14:01:18 | 显示全部楼层
洋葱圈 发表于 2012-3-30 13:33
想到了一个思路,不知对不对
http://www.znczz.com/thread-97128-1-1.html

知我者,非你莫属啊!!!o(∩_∩)o 哈哈,你猜对了……{:soso_e179:}


回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
7#
 楼主| 发表于 2012-3-30 14:40:59 | 显示全部楼层
洋葱圈 发表于 2012-3-30 14:05
说的有道理,不错。


嘻嘻,今天早上就猜,谁能想到方法,而且说出来。第一反应就是你……

回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 13:59 , Processed in 0.103582 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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