智能车制作

标题: 求SD-05舵机可用测试程序。!!!急用啊!!!!!!!!! [打印本页]

作者: ⊙Lin⊙    时间: 2013-1-25 18:34
标题: 求SD-05舵机可用测试程序。!!!急用啊!!!!!!!!!
就求一个B车模的舵机SD-05的可用测试程序!看过很多帖子,什么要调成300Hz的。我调了,舵机一点反应都没有。我没示波器,就用电压表测一下,好像没变化,究竟是哪里出现问题啊!大家能帮我看下么?要么能给一个你们的初始化程序么?好痛苦啊,还担心是不是舵机坏了。
void PWM_Init(void) {
       //PWMCTL      PWM控制寄存器
   PWMCTL_CON45 = 1;                     
   PWME_PWME5 = 0;
    // PWMPRCLK    PWM时钟预分频寄存器
   PWMPRCLK_PCKA = 4;         // clockA  16分频,clockA = busclk/16 = 4MHz;
   PWMSCLA=1;                 // Clock SA = Clock A / (2 * PWMSCLA)  = 2 M
           //PWMCLK      PWM时钟选择寄存器
   PWMCLK_PCLK5 =1;        //PWM5选择 Clock SA  ,单位时钟为0.5us  
    // 通道1357输出极性 首先为高 占空比计数器计数完毕变为低  
   PWMPOL_PPOL5=1;
   //PWMCNTx     PWM计数寄存器
   PWMCNT45= 0;
   //PWMDTYx     PWM比较寄存器(PWM高电平)
    PWMDTY45= 0;
   //PWMPERx     PWM预置数寄存器(PWM周期)
   PWMPER45= 6666;  //PWM频率=Clock SA/PWMPER45=2M/6666=300HZ
     //PWME        PWM使能寄存器                                       
   PWME_PWME5 = 1;   
}

void main() {
  SetBusCLK_64M();  //超频64M
  PWM_Init();
  while(1) {
    PWMDTY45 = 3000;
  }
}



作者: yukunlinykl    时间: 2013-1-25 19:17
用示波器看你输出的波形对不对。
作者: 我知我心    时间: 2013-1-25 19:22
改成50HZ就行
作者: 小盐巴    时间: 2013-1-25 23:21
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

#define mid_duoji 1500

void pwm_init(void);
void duoji(uint duty);
void sysclock_init(void);

void main(void)
{
  sysclock_init();
  pwm_init();
  while(1)
  
  {
  duoji(1500);//打到中间
  
  }
}
  
  void sysclock_init(void)
{
   
  //重新修改        
  CLKSEL=0x00;
  PLLCTL_PLLON=1;   //turn on PLL
  SYNR =0xc0 | 0x09;  //160M                     
  REFDV=0x80 | 0x01;
  
  POSTDIV=0x00;       //pllclock=2*16*(1+SYNR)/(1+REFDV)=xxMHz;
  while(CRGFLG_LOCK!=1);
  CLKSEL_PLLSEL=1;//PLLCLK Enabled,Bus Clock=PLLCLK/2=80

}
void pwm_init(void)
{
   PWME=0; // Disable PWM 禁止
   PWMCAE=0; //对齐方式,左
   
   PWMCLK=0xff;    //选择SA或SB时钟通道
   PWMPOL=0xff; //极性,
   PWMPRCLK=0;//无预分频
   PWMSCLA=40;//时钟SA的频率为1MHz
   
   PWMCTL_CON45= 1;
   
   PWMPER45=20000;//周期20ms
   PWMDTY45=mid_duoji;//初始打到中间
   PWME_PWME5=1;
}

void duoji(uint duty)

{
  PWMDTY45=duty;
}  

作者: LittleDevil    时间: 2013-2-16 17:10
试试:PWMPER45= 3333
作者: ⊙Lin⊙    时间: 2013-2-16 17:20
LittleDevil 发表于 2013-2-16 17:10
试试:PWMPER45= 3333

问题解决很久了,谢谢

作者: luciferwdp    时间: 2013-3-5 15:28
我知我心 发表于 2013-1-25 19:22
改成50HZ就行

请问怎么改成多少多少赫兹啊,在哪里调,谢谢
作者: 啊细    时间: 2013-4-5 17:12
⊙Lin⊙ 发表于 2013-2-16 17:20
问题解决很久了,谢谢

是怎么解决的?能告诉我吗,谢谢~

作者: 爱的港湾    时间: 2013-4-13 16:12
yukunlinykl 发表于 2013-1-25 19:17
用示波器看你输出的波形对不对。

人家都说没有示波器了。




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2