智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: hdongdong123
打印 上一主题 下一主题

关于智能车舵机控制周期问题

  [复制链接]

4

主题

275

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3251

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

威望
1608
贡献
1033
兑换币
1055
注册时间
2014-2-12
在线时间
305 小时
11#
发表于 2016-10-16 09:06:58 | 只看该作者
如果同一时刻,既产生中断又更新占空比,那么先完成占空比的输出然后在响应中断。是不是涉及优先级的问题,,,
回复 支持 反对

使用道具 举报

5

主题

100

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1367
威望
710
贡献
421
兑换币
493
注册时间
2016-3-20
在线时间
118 小时
毕业学校
内蒙古科技大学
12#
 楼主| 发表于 2016-10-16 12:12:42 | 只看该作者
肯定不是优先级的问题,我们猜想PWM发生器有一个预装载寄存器,里面存的是下次需要产生的PWM的占空比。
回复 支持 反对

使用道具 举报

5

主题

100

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1367
威望
710
贡献
421
兑换币
493
注册时间
2016-3-20
在线时间
118 小时
毕业学校
内蒙古科技大学
13#
 楼主| 发表于 2016-10-16 12:23:29 | 只看该作者
在一个PWM周期没有结束之前是不会产生另外一个占空比不同的PWM信号的。也就是说我们在设置控制周期的时候只要保证每次PWM的值都是从预装载寄存器里面取出的,那么这就是控制舵机的最高效率。假如说PWM的控制周期设置成20ms,那么我们的控制周期只要保证比20ms小就可以了。
回复 支持 反对

使用道具 举报

56

主题

4914

帖子

3

精华

顶级版主

北京科技大学智能汽车队公共主页管理员

Rank: 11Rank: 11Rank: 11Rank: 11

积分
56131

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
19568
贡献
13933
兑换币
3365
注册时间
2010-7-22
在线时间
11315 小时
14#
发表于 2016-10-16 12:25:35 | 只看该作者
hdongdong123 发表于 2016-10-15 12:13
这个没有参见STM32的技术手册,并且我们猜想K60也跟STM32一样存在预装载寄存器

双缓冲pwm早在xs128时代就有了,现在连大部分8位单片机都有这个功能
回复 支持 反对

使用道具 举报

5

主题

100

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1367
威望
710
贡献
421
兑换币
493
注册时间
2016-3-20
在线时间
118 小时
毕业学校
内蒙古科技大学
15#
 楼主| 发表于 2016-10-16 18:37:51 | 只看该作者
aytc100 发表于 2016-10-16 12:25
双缓冲pwm早在xs128时代就有了,现在连大部分8位单片机都有这个功能

如果设定舵机频率是50HZ的话,说控制周期只要稍微小于20ms(比如19ms),也就是让PWM每次都从缓冲器里面取值(这应该是PWM的最高效率)。而没有必要把控制周期设置到5ms了。对吧!
回复 支持 反对

使用道具 举报

56

主题

1684

帖子

2

精华

版主

有所思,有所为。

Rank: 9Rank: 9Rank: 9

积分
9497

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

威望
6762
贡献
83
兑换币
3601
注册时间
2014-10-31
在线时间
1326 小时
16#
发表于 2016-10-17 17:09:56 | 只看该作者
很吊的...
回复 支持 反对

使用道具 举报

56

主题

4914

帖子

3

精华

顶级版主

北京科技大学智能汽车队公共主页管理员

Rank: 11Rank: 11Rank: 11Rank: 11

积分
56131

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
19568
贡献
13933
兑换币
3365
注册时间
2010-7-22
在线时间
11315 小时
17#
发表于 2016-10-17 17:20:21 | 只看该作者
hdongdong123 发表于 2016-10-16 18:37
如果设定舵机频率是50HZ的话,说控制周期只要稍微小于20ms(比如19ms),也就是让PWM每次都从缓冲器里面 ...

正好20ms,每次在pwm波更新之后写入寄存器就行
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

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

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
18#
发表于 2016-10-17 20:21:42 | 只看该作者
看完楼主的帖子还是不明白楼主想表达什么。不过K60有个功能叫做异步PWM,xs128也有类似功能。其作用是将数值写入寄存器的同时立刻输出一固定时长的低电平或者高电平。而舵机的工作时长就是0.5ms到2.5ms之间,而其PWM频率则与其舵机的工艺有关,S3010是50Hz力矩最大,SD5是300Hz,具体则可能有一定偏差。我一般是使用外部的周期中断生成50Hz或300Hz来强制同步舵机输出的PWM。
回复 支持 反对

使用道具 举报

5

主题

100

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1367
威望
710
贡献
421
兑换币
493
注册时间
2016-3-20
在线时间
118 小时
毕业学校
内蒙古科技大学
19#
 楼主| 发表于 2016-10-22 18:33:18 | 只看该作者
Quixote 发表于 2016-10-17 20:21
看完楼主的帖子还是不明白楼主想表达什么。不过K60有个功能叫做异步PWM,xs128也有类似功能。其作用是将数 ...

谢谢大神的解答,还是想请教一下你的舵机控制周期是多少ms控制一次,再就是舵机频率给多大?如果就用K60的FTM模块产生PWM信号。但是中断周期(在中断中控制舵机)小于pwm的周期。如果说一个PWM正在产生(还没产生完),但是在中断中执行改变这个PWM占空比的命令那么这时候这个正在产生的PWM是会被立即打断然后去执行新的PWM,还是说等待原来的PWM产生完了再产生这次的PWM信号呢?
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

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

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
20#
发表于 2016-10-22 21:24:29 | 只看该作者
hdongdong123 发表于 2016-10-22 18:33
谢谢大神的解答,还是想请教一下你的舵机控制周期是多少ms控制一次,再就是舵机频率给多大?如果就用 ...

舵机频率低于25Hz就可以,控制50Hz一次。后面的问题我已经叙述过了,你如果不懂可以翻看K60的数据手册。
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 14:40 , Processed in 0.062605 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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