智能车制作

标题: 舵机驱动问题 [打印本页]

作者: luoilong    时间: 2010-5-8 20:51
标题: 舵机驱动问题
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

//--------------初始化函数----------------//
//-----时钟初始化程序--------//
void PLL_Init(void)   //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{                     //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
  REFDV=1;            //总线时钟=48/2=24MHz
  SYNR=2;
  while(!(CRGFLG&0x08));
  CLKSEL=0x80;        //选定锁相环时钟
}

//-----PWM初始化程序------//
void PWM_Init(void)
{
  PWME_PWME2=0x00;  // Disable  PWM            禁止            
  PWMPRCLK=0x33;    // 0011 0011 A=B=24M/8=3M  时钟预分频寄存器设置
  PWMSCLA=150;      // SA=A/2/150=10k          时钟设置
  PWMSCLB=150;       // SB=B/2/150 =10k         时钟设置                    
  PWMCLK_PCLK2=1;   // PWM2-----SA             时钟源的选择
  PWMPOL_PPOL2=1;   // Duty=High Time          极性设置
  PWMCAE_CAE2=0;    // Left-aligned            对齐方式设置
  PWMCTL=0x00;      // no concatenation        控制寄存器设置
  PWMPER2=200;      // Frequency=SB/200=0.05K  周期20ms   周期寄存器设置
  PWMDTY2=182;       // Duty cycle =(200-182)/200= 9%      1.8ms  占空比寄存器设置
  //大致27°
  PWME_PWME2=1;     // Enable  PWM             使能
}
//*----------延迟程序----------------
void delay(int m){
  int i,j;
  for(i=0;i<1000;i++)
    for(j=0;j<m;j++){
    }
}
//  ----------------------------------*/


//-----------------主函数--------------------//
void main(void)
{
  /* put your own code here */
  
  PLL_Init();
  PWM_Init();

EnableInterrupts;

  for(;;) {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}

为什么下载到B车模中 舵机不转向,只出现嗡嗡声
作者: ccyixuan    时间: 2010-8-7 14:17
好长哦
作者: ccyixuan    时间: 2010-8-7 14:17
看的头晕
作者: wenyuhappy    时间: 2010-10-22 13:27
测试下舵机是好的吗?
作者: wenyuhappy    时间: 2010-10-22 13:27
测试下舵机是好的吗?
作者: 未名    时间: 2010-12-10 12:43
学习了
作者: 锋劭    时间: 2012-4-9 17:07
不是控制,只是测试下舵机好坏,是否可以运行。
作者: 锋劭    时间: 2012-4-9 17:15
周期不是20ms,因为b车舵机频率是300hz,把20ms应该换掉




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