OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: 草莽

基于SM32的脉冲输出定位控制(精确脉冲个数控制,PWM)

  [复制链接]

5

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2014-11-21
在线时间
7 小时
发表于 2016-8-11 11:51:05 | 显示全部楼层
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-9-5
在线时间
2 小时
发表于 2016-9-5 17:44:52 | 显示全部楼层
楼主例程3中的加减速使用了什么算法?例程5中系统启动后第一次相对定位时会丢失一个脉冲,而且脉冲输出前后的IO口的电平是相反的,这之后再运行相对定位函数脉冲数就准了,并且脉冲输出前后的电平也是一致的了,是不是因为系统启动后计数器中已经有一个值了,需不需要初始化一下计数器寄存器TIM_CNT;另外,例程中没有有关TIM_CR1寄存器中的计数器对齐模式和计数方向的设置,是不是默认是向上计数?
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-10-13
在线时间
21 小时
发表于 2016-10-13 14:57:27 | 显示全部楼层
多谢楼主。
请问,是不是通过定时器比较匹配来输出一个特定频率的50%占空比的方波,同时该定时器计数溢出时调用中断服务函数中对其脉冲数目加一。也就是说方波的频率就是中断函数被调用的频率,这样的话,如果方波频率很高的话,频繁调用中断会不会导致系统性能下来,甚至不能输出频率准确的波形?新手刚看了原子的视频,希望楼主指点谢谢。
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-8-12
在线时间
9 小时
发表于 2016-10-17 23:38:22 | 显示全部楼层
记号学习了
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-8-12
在线时间
9 小时
发表于 2016-10-17 23:53:58 | 显示全部楼层
精华留名学习了
回复 支持 反对

使用道具 举报

4

主题

211

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2600
金钱
2600
注册时间
2016-7-6
在线时间
546 小时
发表于 2016-10-18 08:52:44 | 显示全部楼层
谢谢分享。~
把复杂的事,做简单!
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2014-6-24
在线时间
56 小时
发表于 2016-10-22 14:46:54 | 显示全部楼层
请问程序PMC100中LadderTarget[0]=Current+StartFreq/100;//加速第一段目标脉冲值,这里为什么要除以100?然后LadderPSC[i]=(6000000/LadderFreq[i])-1;//加减速各阶梯频率对应定时器预分频值,这里是不是描述为ARR值更恰当些?
回复 支持 反对

使用道具 举报

10

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2014-11-6
在线时间
24 小时
 楼主| 发表于 2016-10-24 17:12:53 | 显示全部楼层
吉吉road 发表于 2016-5-1 18:59
大家好,我想问一下,mini板输出的高电平为3.3v,但驱动器要5V,不知道行不行呀

开漏输出就可以啊
回复 支持 反对

使用道具 举报

10

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2014-11-6
在线时间
24 小时
 楼主| 发表于 2016-10-24 17:30:42 | 显示全部楼层
一叶之秋 发表于 2016-9-5 17:44
楼主例程3中的加减速使用了什么算法?例程5中系统启动后第一次相对定位时会丢失一个脉冲,而且脉冲输出前后 ...

看来真的少一个脉冲,不止一个人说。
我也不知道为什么
在启动时最好还是清一下TIM_CNT吧,不知道这样有没有同时将预分频计数器清零
回复 支持 反对

使用道具 举报

10

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2014-11-6
在线时间
24 小时
 楼主| 发表于 2016-10-24 17:31:12 | 显示全部楼层
一叶之秋 发表于 2016-9-5 17:44
楼主例程3中的加减速使用了什么算法?例程5中系统启动后第一次相对定位时会丢失一个脉冲,而且脉冲输出前后 ...

看来真的少一个脉冲,不止一个人说。
我也不知道为什么
在启动时最好还是清一下TIM_CNT吧,不知道这样有没有同时将预分频计数器清零
回复 支持 反对

使用道具 举报

10

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2014-11-6
在线时间
24 小时
 楼主| 发表于 2016-10-24 17:34:09 | 显示全部楼层
xyz133355555 发表于 2016-10-22 14:46
请问程序PMC100中LadderTarget[0]=Current+StartFreq/100;//加速第一段目标脉冲值,这里为什么要除以100?然 ...

加减速过程中的修改,最初是改ARR值和匹配值两个寄存器。后面改成只改PSC预分频,可以节约中断处理时间
回复 支持 反对

使用道具 举报

10

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2014-11-6
在线时间
24 小时
 楼主| 发表于 2016-10-24 17:38:36 | 显示全部楼层
xyz133355555 发表于 2016-10-22 14:46
请问程序PMC100中LadderTarget[0]=Current+StartFreq/100;//加速第一段目标脉冲值,这里为什么要除以100?然 ...

加减速过程中的修改,最初是改ARR值和匹配值两个寄存器。后面改成只改PSC预分频,可以节约中断处理时间
回复 支持 反对

使用道具 举报

10

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2014-11-6
在线时间
24 小时
 楼主| 发表于 2016-10-24 17:41:18 | 显示全部楼层
xyz133355555 发表于 2016-10-22 14:46
请问程序PMC100中LadderTarget[0]=Current+StartFreq/100;//加速第一段目标脉冲值,这里为什么要除以100?然 ...

除以100是因为  加减速以每10毫秒为一个等级,启动频率为StartFreq,那么加减速第一级计划输出的脉冲数为StartFreq/100,因为频率等于1000毫秒输出的脉冲数
回复 支持 反对

使用道具 举报

7

主题

96

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-8-24
在线时间
62 小时
发表于 2016-10-24 21:59:25 | 显示全部楼层
cool 先收藏了 谢谢分享
回复 支持 反对

使用道具 举报

21

主题

243

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2015-3-12
在线时间
168 小时
发表于 2016-11-20 12:08:48 | 显示全部楼层
草莽 发表于 2014-11-11 18:26
(更新)带加减速的单轴(步进伺服)运动控制器的实现。

原子哥,TIM6和TIM7怎么启动不了,普通定时用一个通 ...

楼主,TIM4,这个精度很好啊~!~!~我正在消化代码~!~!
回复 支持 反对

使用道具 举报

21

主题

243

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2015-3-12
在线时间
168 小时
发表于 2016-11-20 12:38:45 | 显示全部楼层
http://v.youku.com/v_show/id_XMTgyNjkzNTIwOA==.html


我录制的视频~!~!用楼主的程序,57电机,战舰开发板子。驱动淘宝上买的
回复 支持 反对

使用道具 举报

21

主题

243

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2015-3-12
在线时间
168 小时
发表于 2016-11-20 12:39:27 | 显示全部楼层
定位精准,现在还在消化代码中。。。。。。
回复 支持 反对

使用道具 举报

21

主题

243

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2015-3-12
在线时间
168 小时
发表于 2016-11-27 23:02:11 | 显示全部楼层
这样改算不算精准个数脉冲????请大神帮看看。这个是库函数的。还有,加减速的原理是什么???谁能告诉我。我看楼主的代码很吃力,毕竟我刚开始就是学的库函数的。

实验9 PWM输出实验 - 副本.zip

3.12 MB, 下载次数: 2672

回复 支持 反对

使用道具 举报

4

主题

125

帖子

1

精华

高级会员

Rank: 4

积分
870
金钱
870
注册时间
2014-8-7
在线时间
49 小时
发表于 2016-11-27 23:07:46 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-11-10
在线时间
9 小时
发表于 2016-12-1 09:20:47 | 显示全部楼层
赞一个!啥也不说了,这才是大神!
回复 支持 反对

使用道具 举报

21

主题

243

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2015-3-12
在线时间
168 小时
发表于 2016-12-1 09:54:59 | 显示全部楼层

正点原子???发表一下评论喂~!~!怎么弄加减速??
回复 支持 反对

使用道具 举报

21

主题

243

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2015-3-12
在线时间
168 小时
发表于 2016-12-1 09:55:35 | 显示全部楼层
wangjingyang 发表于 2016-12-1 09:20
赞一个!啥也不说了,这才是大神!

来发表一下,你的想法~!
回复 支持 反对

使用道具 举报

0

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2015-10-15
在线时间
39 小时
发表于 2016-12-7 22:29:27 | 显示全部楼层
这才是真正的学术交流赞一个,纯干货
回复 支持 反对

使用道具 举报

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2016-8-13
在线时间
14 小时
发表于 2016-12-8 00:18:30 | 显示全部楼层
MARK!~
回复 支持 反对

使用道具 举报

0

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-11-25
在线时间
28 小时
发表于 2016-12-8 14:11:54 | 显示全部楼层
谢谢分享、、
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-3-25
在线时间
6 小时
发表于 2016-12-10 15:34:57 | 显示全部楼层
卧槽我正在找这个
感谢感谢!!!!!!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2016-12-13
在线时间
0 小时
发表于 2016-12-13 20:19:02 | 显示全部楼层
真的是好东西!
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
263
金钱
263
注册时间
2017-1-11
在线时间
64 小时
发表于 2017-3-15 17:58:49 | 显示全部楼层
看了原子哥的步进驱动代码找到这里来,正需要这些功能呢,感谢分享
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2013-10-14
在线时间
10 小时
发表于 2017-3-17 14:56:37 | 显示全部楼层
好东西,mark,谢谢分享。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-6-4
在线时间
0 小时
发表于 2017-3-18 20:16:34 | 显示全部楼层
我目前大三,被伺服电机搞了半个月,终于遇到了救命草
谢谢
回复 支持 反对

使用道具 举报

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2016-7-16
在线时间
22 小时
发表于 2017-6-16 09:09:46 | 显示全部楼层
楼主您好,因为您的寄存器是自己配置的,我想问一下,我用的是第二个例子,我现在想把脉冲输出口配置成PA2,查手册发现是time2定时器的CH2通道,我研究了您的程序,但是通道配置那块不会配,您写的那个寄存器找不到说明,我不知道该怎么配,您能方便告诉我一下吗
非常感激
回复 支持 反对

使用道具 举报

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2016-7-16
在线时间
22 小时
发表于 2017-6-16 09:17:26 | 显示全部楼层
laoyu 发表于 2016-6-26 14:43
萌新弱弱地问,这是什么板的?寄存器名称跟精英、战舰的对不上~~

请问你知道这个楼主自己编写的寄存器怎么配置吗?关于通道那块的
回复 支持 反对

使用道具 举报

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2016-7-16
在线时间
22 小时
发表于 2017-6-16 09:18:12 | 显示全部楼层
laoyu 发表于 2016-6-26 14:43
萌新弱弱地问,这是什么板的?寄存器名称跟精英、战舰的对不上~~

请问你知道这个楼主自己编写的寄存器怎么配置吗?关于通道那块的
回复 支持 反对

使用道具 举报

9

主题

51

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1009
金钱
1009
注册时间
2017-4-19
在线时间
125 小时
发表于 2017-7-4 11:55:18 | 显示全部楼层
草莽 发表于 2016-7-10 20:44
程序结构和算法优化一下

大神你真好,我把资料拿走了,正在学习呢谢谢!!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-8-17
在线时间
0 小时
发表于 2017-8-17 16:21:40 | 显示全部楼层
HerryZ 发表于 2016-11-20 12:38
http://v.youku.com/v_show/id_XMTgyNjkzNTIwOA==.html

这个用的是哪个程序,有加减速过程吗
回复 支持 反对

使用道具 举报

1

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2017-8-21
在线时间
32 小时
发表于 2017-8-21 11:27:50 | 显示全部楼层
真的很不错
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2014-1-24
在线时间
25 小时
发表于 2017-9-12 09:46:20 | 显示全部楼层
原子老大,这个真不太好,为什么没有库函数的版本
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1060
金钱
1060
注册时间
2016-7-25
在线时间
115 小时
发表于 2017-9-28 11:22:26 | 显示全部楼层
不错,谢谢
回复 支持 反对

使用道具 举报

6

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2017-6-10
在线时间
39 小时
发表于 2017-10-18 12:44:50 | 显示全部楼层
6666,干货啊,谢谢大佬
回复 支持 反对

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-12-24
在线时间
10 小时
发表于 2017-12-26 13:20:21 | 显示全部楼层
感谢  群主
回复 支持 反对

使用道具 举报

0

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2014-1-11
在线时间
95 小时
发表于 2018-2-3 10:03:02 | 显示全部楼层
标记一下.PWM脉冲控制
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2018-2-19
在线时间
9 小时
发表于 2018-3-5 21:59:22 | 显示全部楼层
学习下
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-1-14
在线时间
30 小时
发表于 2018-3-25 10:10:54 | 显示全部楼层
感谢分享!
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2018-1-23
在线时间
61 小时
发表于 2018-3-29 09:17:58 | 显示全部楼层
草莽 发表于 2016-10-24 17:30
看来真的少一个脉冲,不止一个人说。
我也不知道为什么
在启动时最好还是清一下TIM_CNT吧,不知道这样 ...

少一个脉冲是因为第一次没有更新计时器分频器值。
在启动函数中加入TIM1->EGR = 1;重新初始化计数器。更新分频器寄存器值。
另外定位函数的输入脉冲处理有一些问题,不能输入过小的运动量,内部的循环判断应该加上判断条件。
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2018-3-29
在线时间
5 小时
发表于 2018-3-29 16:49:38 | 显示全部楼层
cool????
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-6-30
在线时间
2 小时
发表于 2018-6-4 14:34:00 | 显示全部楼层
草莽 发表于 2014-11-9 21:01
回复【2楼】正点原子:
---------------------------------
脉冲数量和频率都可以设定
这个没有下到板子子上 ...

楼主不是已经把加减速写到最后的例程中去了,怎么会说最大的问题是没有加减速,不适于步进跑高速,难不成《程序结构和算法优化一下》上传的《
PMC100_STM32_C_20150405.rar》中的加减速是不能用的?
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2018-1-16
在线时间
28 小时
发表于 2018-6-5 19:03:19 | 显示全部楼层
顶贴,正在学习中
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-4-24
在线时间
2 小时
发表于 2018-7-31 10:09:38 | 显示全部楼层
正弄这个东西,感谢分享
回复 支持 反对

使用道具 举报

7

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2018-7-19
在线时间
126 小时
发表于 2018-8-16 14:56:50 | 显示全部楼层
梦想实现 发表于 2016-6-3 19:31
楼主的代码能帮忙提供库函数版代码不?不胜感激。先谢谢啦。
因为好多教程都是叫我们库函数,又要去学库函 ...

你直接把楼主的代码拿过来改成库函数版本不就好了,这样你即学会了寄存器操作,又学习了楼主编程思想,还巩固了库函数。一举三得
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2018-9-14
在线时间
5 小时
发表于 2018-9-14 15:06:46 | 显示全部楼层
谢谢,好东西学习中
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 17:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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