智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2101|回复: 2
打印 上一主题 下一主题

求指教,sd5舵机问题

[复制链接]

2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
威望
170
贡献
64
兑换币
90
注册时间
2012-10-14
在线时间
43 小时
毕业学校
hy
跳转到指定楼层
1#
发表于 2013-6-12 08:47:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
舵机可以打到中间,但是再调大调小数值就会向右打角度,不能向左打角度。
以下是pwm初始化,总线时钟48mhz。

PWMCTL_CON01=1;    //0和1联合成16位PWM;
    PWMCTL_CON23=1;    //2和3联合成16位PWM;
    PWMCTL_CON45=1;    //4和5联合成16位PWM;


    PWMPRCLK = 0X00;    /
    PWMSCLA = 24;    //  
    PWMSCLB = 24;    //


    PWMCLK_PCLK1=1;//SA作频率
    PWMCLK_PCLK3=1;//SB作频率
    PWMCLK_PCLK5=1;//选择clock SA做时钟源     


    PWMCAE_CAE1=0;//选择输出模式为左对齐输出模式,同时PWM周期=通道时钟周期*PWMPERX
    PWMCAE_CAE3=0;//选择输出模式为左对齐输出模式
    PWMCAE_CAE5=0;


    PWMCNT01=0;  //计数器清零
    PWMCNT23=0;
    PWMCNT45=0;


    PWMPOL_PPOL1=1;//先输出高电平,计数到DTY时,反转电平同时占空比的求法=占空比寄存器/周期寄存器
    PWMPOL_PPOL3=1;//先输出高电平,计数到DTY时,反转电平
    PWMPOL_PPOL5=1;


    PWMPER01=200;//周期=200/1000000s=0.2ms
    PWMDTY01=0;
    PWMPER23 = 200;   //周期20ms; 50Hz;
    PWMDTY23 =0;   //高电平时间为ms;
    PWMPER45=3333;
    PWMDTY45=middle;

    PWME_PWME1=1;
    PWME_PWME3=1;
    PWME_PWME5=1;   


2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
威望
170
贡献
64
兑换币
90
注册时间
2012-10-14
在线时间
43 小时
毕业学校
hy
2#
 楼主| 发表于 2013-6-12 08:48:19 | 只看该作者
各位高手,求指导。
回复 支持 反对

使用道具 举报

140

主题

1016

帖子

2

精华

功勋会员

智能车八届元老!武汉岱默科技创始人!

Rank: 10Rank: 10Rank: 10

积分
32723

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

QQ
威望
4239
贡献
25778
兑换币
1456
注册时间
2009-12-9
在线时间
1353 小时
3#
发表于 2013-6-12 12:09:08 | 只看该作者
SD05舵机建议给300HZ,50%占空比,建议你试下以下代码
  1. void PWM_Init(void)
  2. {   
  3.     //CH01  motor in1
  4.     //CH23  motor in2
  5.     //CH45  servo
  6.     //SB,B for ch2367
  7.     //SA,A for ch0145   
  8.     PWME  = 0x00;       //PWM禁止
  9.     PWMCTL = 0x70;                  //CH01、23、45级联成16位PWM;
  10.     PWMCAE = 0x00;                        //选择输出模式为左对齐输出模式
  11.     PWMPOL = 0xFF;                        //先输出高电平,计数到DTY时,反转电平
  12.     PWMPRCLK = 0x33;    //ClockA 8分频=BusClock/8=6MHz ;ClockB 8分频=BusClock/8=6MHz  
  13.     PWMSCLA = 0x01;     //ClockSA=ClockA/(2*1)=3MHz
  14.     PWMSCLB = 0x01;     //ClockSB=ClockB/(2*1)=3MHz      
  15.     PWMCLK  = 0xFF;     //CH0145选择clock SA做时钟源;CH2367选择clock SB做时钟源

  16.     PWMPER01=12000;             //电机设置 1,3 通
  17.     PWMDTY01=0;  
  18.     PWMPER23=12000;   
  19.     PWMDTY23=0;
  20.    
  21.                
  22.     PWMPER45 = 10000;   //频率= ClockSA/PWMPER45; 300Hz;
  23.     PWMDTY45 = 5000;    //0°----50%     
  24.    
  25.     PWMCNT01 = 0;       
  26.     PWMCNT23 = 0;       
  27.     PWMCNT45 = 0;                 //计数器清零;
  28.     PWME = 0x2A;     //PWM使能
  29. }
复制代码

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 13:17 , Processed in 0.096776 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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