智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2429|回复: 5
打印 上一主题 下一主题

舵机pwm的时钟配置

[复制链接]

39

主题

850

帖子

0

精华

跨届大侠

同学,今晚去你宿舍偷高压锅。

Rank: 10Rank: 10Rank: 10

积分
8530

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
3783
贡献
2239
兑换币
2331
注册时间
2012-7-26
在线时间
1255 小时
跳转到指定楼层
1#
发表于 2013-1-25 14:40:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问大家个问题?我用的是s12,想写个pwm舵机的测试程序,总线时钟64M可是,在这个总线时钟下得到300hz去驱动舵机,很难配A和SA的时钟啊!因为怎么配都是除不尽有小数的?这有关系么?我的是SD-05舵机。求指教~

8

主题

54

帖子

0

精华

高级会员

Rank: 4

积分
649
威望
288
贡献
135
兑换币
176
注册时间
2012-11-7
在线时间
113 小时
2#
发表于 2013-3-14 23:00:04 | 只看该作者
个人觉得这没关系,你的舵机控制的如何了?我也纠结这个呢,方便加QQ大家一起交流吗?我的是973581439
回复 支持 反对

使用道具 举报

42

主题

299

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4405
QQ
威望
2280
贡献
1049
兑换币
767
注册时间
2011-11-29
在线时间
538 小时
3#
发表于 2013-6-6 11:21:54 | 只看该作者
哥们,我也在纠结舵机的精度,能交流一下吗
回复 支持 反对

使用道具 举报

39

主题

850

帖子

0

精华

跨届大侠

同学,今晚去你宿舍偷高压锅。

Rank: 10Rank: 10Rank: 10

积分
8530

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
3783
贡献
2239
兑换币
2331
注册时间
2012-7-26
在线时间
1255 小时
4#
 楼主| 发表于 2013-6-6 13:16:11 | 只看该作者
tujunjie 发表于 2013-6-6 11:21
哥们,我也在纠结舵机的精度,能交流一下吗

级联呗,当然和寄存器配置的参数都有关。
回复 支持 反对

使用道具 举报

42

主题

299

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4405
QQ
威望
2280
贡献
1049
兑换币
767
注册时间
2011-11-29
在线时间
538 小时
5#
发表于 2013-6-6 19:24:00 | 只看该作者
⊙Lin⊙ 发表于 2013-6-6 13:16
级联呗,当然和寄存器配置的参数都有关。

是呀,我配置的是300hz的,但是配置的3333,不行呀,看你在论坛上有类似的问题,能帮忙解决一下吗?谢谢!!!//______________________________________________舵机程序_默认平率是80M____________________________________________________  void init_Steer(){
    PWME_PWME3 = 0;

     //设置舵机预分频
    PWMPRCLK_PCKB0 = 1;    //频率计算方法:ClockB = E/n (n=2.4.8....128)
    PWMPRCLK_PCKB1 = 1;    //n=4对应010.以此类推
    PWMPRCLK_PCKB2 = 0;    //E的值为总线频率的1/2.
    //此时ClockA为5M

    //设置ClockSB的频率,舵机
     PWMSCLB = 0x32;      //ClockSB频率计算方法:ClockSB = ClockB/2*(PWMSCLA寄存器的值)      
    //此时的ClockSB频率为 100K HZ

    //设置PWM控制寄存器,设置2和3通道为级联
    PWMCTL_CON23 = 1;      //设置方法:查看该寄存器的相应位
                           //,将该位置1就可以实现级联

     //选择PWM3(舵机)的时钟,为ClockSB
    PWMCLK_PCLK3 = 1;     //选择时钟方法:
                          //当PWMCLK_PCLK2的值为1时选择时钟为ClockSB
                          //当PWMCLK_PCLK2的值为0时选择时钟为ClockB
                          //当选择为ClockSA时钟时还需要设置PWMSCLA寄存器值

    //设置PWM波的极性,起使为高电平
    PWMPOL = 1;     //极性设置方法:该位0时为低电平,1时为高电平

    //设置PWM波的对其方式,为左对齐
    PWMCAE = 0;      //对齐方式设置:该位0时为左对齐方式。1时为居中对齐方式

    PWME_PWME3 = 1;
}



void Steer (unsigned char dutyS)
  {

     //(舵机)设置周期寄存器的值,起始值为2000.则PWM波输出频率为ClockSB/2000 = 300 Hz,周期为3.33ms
    PWMPER23 = 3333;   

    PWMDTY23 = dutyS;

    delay(100);            


回复 支持 反对

使用道具 举报

39

主题

850

帖子

0

精华

跨届大侠

同学,今晚去你宿舍偷高压锅。

Rank: 10Rank: 10Rank: 10

积分
8530

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
3783
贡献
2239
兑换币
2331
注册时间
2012-7-26
在线时间
1255 小时
6#
 楼主| 发表于 2013-6-7 22:08:54 | 只看该作者
tujunjie 发表于 2013-6-6 19:24
是呀,我配置的是300hz的,但是配置的3333,不行呀,看你在论坛上有类似的问题,能帮忙解决一下吗?谢谢! ...

之前我和你配的一样,也是3333,但是不成功。之后我安装一般的配50hz就可以了,不知道为什么,但貌似300hz才是这款舵机的最佳频率。不知道其他人配成功没有。你试试50hz看看。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 03:05 , Processed in 0.056710 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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