智能车制作

标题: PWM 程序 [打印本页]

作者: 嵌入式系统设计    时间: 2012-5-9 17:46
标题: PWM 程序
我用的是12g芯片        下面程序舵机为什么总是往一边偏?求指点

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
//////////////////////////////////////////////////////////////////////////////////////////////////////
void SetBusCLK_nM(byte nM)
{   
    MMCCTL1=0X00;   
    PKGCR  =0X06;   
    DIRECT =0x00;
    IVBR   =0xFF;   
    ECLKCTL=0xC0;   
    CPMUPROT   =0x26;   //停止保护时钟配置寄存器
    CPMUCLKS_PSTP=0;    //
    CPMUCLKS_PLLSEL=1;  //应用PLL      
    //CPMUSYNR   =nM-1;   //设置分频因子  
    CPMUSYNR   =0xc0|(nM-1); //设置分频因子
    CPMUREFDIV =0x80|0x00; //pllclock=2*(1+SYNR)= MHz;
    CPMUPOSTDIV=0x00;   // Set the post divider register      
    CPMUPOSTDIV=0x00;   // Set the post divider register  
    CPMUPLL    =0x10;   // Set the PLL frequency modulation  
    while(CPMUFLG_LOCK == 0);          /* Wait until the PLL is within the desired tolerance of the target frequency */
    CPMUPROT=0x00;            /* Enable protection of clock configuration registers */
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
    void PWM_Init(void)
     {
  
   PWME=0X00;           // 关闭PWM_1输出
     
    PWMPRCLK =0x11;     // ClockA、ClockB 2分频=24M/2=12M
    PWMSCLA = 0x06;      // ClockSA=ClockA/2/PWMSCLA=12/2/6=1M
    PWMSCLB = 0x06;      // ClockSA=ClockA/2/PWMSCLA=12/2/6=1M

   PWMCTL_CON01 = 1;
   PWMCLKAB_PCLKAB1 = 0;      
    PWMCLK_PCLK1 = 1;               // 通道1选择ClockSA
    PWMCAE_CAE1  = 0;              // 通道1左对齐
   PWMPOL_PPOL1 = 1;               // 通道1起始输出高电平
    PWMPER01 = 20000;                // 输出周期20ms  50HZ
    PWMDTY01 =1500;        // 占空取舵机中值
  PWME_PWME1=1;            // 使能通道1
}
         


作者: 可欣    时间: 2012-9-28 12:31

作者: Nelson90    时间: 2012-10-11 09:54
以后真的注意了。。。 楼主真好




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